Instalando os mesmos pacotes de uma máquina em outra

By Geowany, 10 de julho de 2010

Se você algum dia instalou seu sistema com todos aqueles pacotes que você precisa e existiu a necessidade de instalar em uma ou várias máquinas mas não lembra ao certo quais são aquelas centenas de pacotes que você instalou, existe uma solução rápida e indolor para isso!

Primeiramente devemos gerar a lista de pacotes que você instalou com o comando:

$ dpkg --get-selections > packages.list

Depois, copie o arquivo para a máquina que deseja instalar os mesmos pacotes (no meu caso copiei no diretório /tmp) e certifique-se que a lista de repositórios na máquina onde deseja instalar os pacotes está igual a da máquina onde os pacotes foram instalados. Feito isso, basta executar o comando:

$ sudo dpkg --set-selections < /tmp/packages.list && sudo apt-get dselect-upgrade

Espero que seja útil, pois hoje mesmo utilizei este pequeno método para não perder tempo "procurando" os pacotes que estavam instalados em uma máquina e queria instalar em outra. E isso serve até no caso de reinstalar o sistema na mesma máquina e não esquecer o nome daquele pacote importante que você usa esporadicamente e provavelmente esquece o nome.

Exemplo de shell script para criar imagem de disco de cache do APT

By Geowany, 25 de junho de 2010

Pessoal! Fiz esse pequeno script que me atende muito bem para criar um disco com pacotes para instalação sem conexão com a internet. Espero que ajude quem precisa porquê 3g no PC dos outros é refresco!

#!/bin/bash
DISTRIBUICAO=`lsb_release -a 2> /dev/null | grep Distributor | cut  -f 2`
CODINOME=`lsb_release -a 2> /dev/null | grep Codename | cut  -f 2`
ARQUITETURA=`uname -a | cut -d ' ' -f 12`
DATA=`date "+%Y-%m-%d %R"`

echo "Pode fazer o favor de atualizar seu sistema?[y/N]"
read ATUALIZAR

echo "Pode ser que você tenha feito a besteira de apagar algum pacote
da cache que está instalado no sistema. Deseja baixars TODOS os pacotes
que estão instalados nesta máquina?[y/N]"
read BAIXARTODOS

echo "Excluir pacotes de versões antigas?[y/N]"
read EXCLUIRANTIGA

if [ "$ATUALIZAR" == "y" ]
then
apt-get update
apt-get dist-upgrade -y
apt-get autoremove -y
fi

if [ "$BAIXARTODOS" == "y" ]
then
for package in `dpkg --get-selections | grep install | cut -f 1`
do
apt-get install $package -d
done
fi

if [ "$EXCLUIRANTIGA" == "y" ]
then
apt-get autoclean
fi

echo "Copiando pacotes…"
mkdir packages
cp -v /var/cache/apt/archives/*.deb packages/
echo "Pacotes copiados!"

echo "Você quer gravar o cache em CD (700Mb) ou DVD (4000Mb)? [Cd/Dvd]"
read TAMANHO
if [ "$TAMANHO" == "C" ]
then
TAMANHO=650M
fi
if [ "$TAMANHO" == "D" ]
then
TAMANHO=4400M
fi

echo "Dividindo os pacotes em volumes"
dirsplit -s $TAMANHO -m -p cache_ packages/
rm -r packages/
echo "Pacotes divididos em volumes!"

i=0

#for DISCO in `ls cache_* | grep : | cut -d ':' -f 1 `
for DISCO in `find . -iname cache_*`
do
i=$(($i+1))
echo "Criando imagem do disco $i"
cd $DISCO
touch tmp
mkdir packages
mv *.deb packages/
echo "Criando índice de pacotes…"
dpkg-scanpackages packages tmp | gzip > Packages.gz
echo "Índice de pacotes criado!"
rm tmp
echo "Criando arquivo de definições do disco…"
echo "#define DISKNAME  MyRepository for $DISTRIBUICAO $CODINOME – $ARQUITETURA ($DATA)
#define TYPE  binary
#define TYPEbinary  CD$i
#define ARCH  $ARQUITETURA
#define ARCH$ARQUITETURA  CD$i
#define DISKNUM  CD$i
#define DISKNUMCD$i  CD$i
#define TOTALNUM  CD$i
#define TOTALNUMCD1  CD$i" > README.diskdefines
echo "Arquivo de definições de disco criado"
echo "Criando informações do disco…"
echo "distribution: $DISTRIBUICAO
codename: $CODINOME
architecture: $ARQUITETURA
date: $DATA" > disk.info
echo "Informações criadas!"
echo "Criando arquivo de imagem no formato ISO-9660…"
cd ..
mkisofs -V "$DISCO" -r -joliet-long -o $DISCO.iso $DISCO/
rm -rf $DISCO/
echo "Arquivo de imagens foi criado!"
done

Dicas para ambiente LXDE

By Geowany, 15 de junho de 2010

Apesar de voltar a usar Debian no meu desktop, vou mandar dicas rápidas que podem servir para quem usa o Lubuntu, um variante do Ubuntu que usa o LXDE como desktop por padrão.

1ª Dica: Auto Iniciar Aplicações:

Basta copiar o arquivo padrão:

$ cp /etc/xdg/lxsession/LXDE/autostart ~/.config/lxsession/LXDE/

e editar o arquivo adicionando a aplicação com um "@" na frente:

$ vim ~/.config/lxsession/LXDE/autostart

O conteúdo fica mais ou menos assim:

@xscreensaver -no-splash

@feh –bg-scale $HOME/.wallpaper

@conky

@pino

@pidgin

@lxpanel –profile LXDE

Aí é só reiniciar a sessão e ver o resultado!

2ª Dica: Personalizar teclas de atalho globais

Edite o arquivo a seguir:

$ vim /home/geowany/.config/openbox/lxde-rc.xml

Procure pela tag "" e logo a cima dela você pode criar o que deseja seguindo o modelo abaixo:

<keybind key="seuatalho">

<action name="Execute">

<command>seucomando</command>

</action>

</keybind>

Substitua o "seuatalho" pela combinação de teclas que deseja, não esquecendo de substituir o "seucomando".

Observe que no próprio arquivo já existem os atalhos padrões, como o Super+r (Super é aquela tecla com logo do Windows). Se pressionado ele chama o "Executar".

As teclas especiais devem possuir a seguinte "nomeclatura":

Shift = S

Control = C

Alt = A

Super = R

Esc = Escape

Agora chega a parte que seria "complicada" para quem tem teclados multimedia e deseja que ele funcione perfeitamente no LXDE.

Para colocar uma tecla multimedia precisamos primeiramente identificar o seu keycode através do programa xev ( $ sudo apt-get install xev ). Basta iniciar o programa pelo terminal e verificar a saída dele quando pressionamos a tecla desejada como no exemplo abaixo:

KeyRelease event, serial 40, synthetic NO, window 0×3000001,

root 0x1ad, subw 0×0, time 33555820, (169,-10), root:(234,152),

state 0×0, keycode 181 (keysym 0x1008ff73, XF86Reload), same_screen YES,

XLookupString gives 0 bytes:

XFilterEvent returns: False

Neste exemplo, o keycode é 181. e devemos convertê-lo para hexadecimal acrescentando o prefixo "0x" ficando "0xB5" (é caso insensitivo, tanto faz colocar maiúsculo ou minúsculo).

Como exemplo, vamos agorar colocar esta tecla para aumentar o volume do sistema:

<keybind key="0xB5">

<action name="Execute">

<command>amixer sset Master 5+</command>

</action>

</keybind>

Feito as modificações ao gosto do freguês, basta reconfigurar o openbox.

$ openbox –reconfigure

Espero que gostem, e que o Greyson não dê xiliques porque usei o Ubuntu apenas para testar a distro "bam,bam,bam" do momento.

Meu coração é Debian!

Aconselho que leiam a documentação do Openbox a respeito do tema:

http://openbox.org/wiki/Help:Bindings

FLUXBOX – Gerenciador de Janelas

By Geowany, 6 de junho de 2010

O Fluxbox é (que existe variante Ubuntu chamada Fluxbuntu) um gerenciador de janelas levíssimo, elegante, simples e pode ser personalizado diretamente por edição dos arquivos de configuração. Ele é meio que "primo" do Blackbox, pois teve grande parte de seu código derivado dele.
Alguns motivos que me convenceram a utilizar o Fluxbox: ótimo desempenho em máquinas com poucos recursos, simplicidade, beleza e funcionalidade.
Vamos instalar o fluxbox através do gerenciador de pacotes, no meu caso, o apt:

# apt-get install fluxbox

Feito isso, basta abrir uma sessão do fluxbox através do seu gerenciador de login (gdm, kdm, xdm, ou outro…) ou iniciar através do terminal com o comando:

$ startfluxbox

Sendo que para iniciar pelo startx, basta fazer assim:

$ echo "exec startfluxbox" > ~/.xinitrc

E depois de iniciado, tenho certeza que você que é acostumado com o Gnome ou KDE vai estranhar esse gerenciador minimalista em execução. Mesmo assim, vamos às configurações, e por partes.

Ao iniciar o fluxbox criará no seu home o diretório ~/.fluxbox que contém os arquivos de configuração.
Vamos ao que interessa (e que às vezes estressa) que é configurar:

MENU

Copie o arquivo gerado automaticamente sobre o seu arquivo:

$ cp /etc/X11/fluxbox/fluxbox-menu ~/.fluxbox/menu

Agora você pode me perguntar o porquê, mas a resposta é simples, o conteúdo do arquivo padrão é:

[begin] (fluxbox)
[include] (/etc/X11/fluxbox/fluxbox-menu)
[end]

Ou seja, o menu que é chamado ao clicar com o botão direito na área de trabalho nada mais é que uma inclusão do arquivo gerado automaticamente (e que o usuário não tem permissão de acesso para alteração por padrão), e copiando ele sobre o seu arquivo, você vai ficar livre pra meter a mão na massa e deixar ele do jeito que achar melhor.

E agora é só editar o arquivo à vontade.

$ nano ~/.fluxbox/menu

Vou dar algumas dicas. Eu acho o arquivo "bem intuitivo" (apesar de intimidar quem não é acostumado), bastando seguir as tags geralmente assim:
[submenu] (Meu submenu)
[exec] (Nome do comando) {comando} </caminho/do/icone>
[end]

E o que já faço logo de cara é colocar no menu o que acho essencial: um emulador de terminal (o Eterm fica show!)  e o programa "fbrun" que executa aplicações gráficas sem ter a necessidade de abrir um terminal.
Uma tag que ajuda muito visualmente é a [separator] que deixa uma linha dentro do menu ou submenu.
Teste adicionando essas linhas logo abaixo das linhas comentadas:

[exec] (Terminal) {xterm}
[exec] (Executar…) {fbrun}
[separator]

Feito isso, já temos o xterm (emulador de terminal "feinho") e o fbrun para nos sentirmos mais "acomodados" com o essencial à um clique de distância.

E já que o flubox é um gerenciador de janelas e não um ambiente gráfico, ele não tem um emulador de terminal padrão. Mas vou ser bem sincero, o Eterm fica perfeito com ele!

# apt-get install eterm

Aí é só alterar a linha que chama o xterm:

[exec] (Terminal) {xterm}

para

[exec] (Terminal) {Eterm -g 75×25+20+20 –scrollbar=off –buttonbar=off –title "Emulador de Terminal" -f green –trans –shade 50}
[exec] (Terminal sem bordas) {Eterm -g 75×25+20+20 –scrollbar=off –buttonbar=off –title "Emulador de Terminal" -f green –trans –shade 50 -x}

Onde a primeira linha executa o Eterm com tamanho 75×25 na posição 20+20, sem barra de rolagem, sem barra de botões, com o título "Emulador de Terminal" com letras na cor verde, transparente e sombreado em 50%. Para mais opções, consulte o manual do Eterm. E a segunda com o parâmetro -x que o força a não usar bordas do gerenciador de janelas.

Se quiser aumentar a fonte do Eterm, por exemplo:

"Ctrl+Clique direito > Font > Font 4"

E logo após:

"Ctrl+Clique direito > Save user settings"

Certo, já deixamos ele mais "funcional" através do que considero essencial para execução das aplicações: o menu, o terminal e o fbrun.

MELHORANDO A APARÊNCIA

MUDAR ESTILO
Agora vamos mudar a cara do fluxbox, porque por padrão, ele não é muito interessante…
Escolha um novo estilo através do:

"Menu > Styles"

E selecione um estilo diferente. Ah! Ia esquecendo de falar que você pode encontrar muitos estilos personalizados pela internet, principalmente em http://costumize.org/fluxbox. É só baixar e descompactar na ~/.fluxbox/styles (alguns também precisam de arquivos na ~/.fluxbox/background) ou se quiser, faça o seu mesmo!

COLOCAR PAPEL DE PAREDE

Para setar o wallpaper é bem simples, por exemplo:

$ fbsetbg wallpaper_desejado.jpg

Já cansei de ver em fórum por aí em que o camarada configura o papel de parede e quando reinicia a sessão, o papel de parede não está mais onde deveria estar. Vou dar a solução: basta alterar o arquivo ~/.fluxbox/init e procurar pela linha abaixo:

session.screen0.rootCommand:

Alterando para:

session.screen0.rootCommand: fbsetgb -l

Onde "fbsetbg -l" é "ajuste o último papel de parede setado".
E se quiser uma lista de papéis de parede no seu menu, edite-o adicionando isso:

[submenu] (Wallpapers) {}
[wallpapermenu] (/caminho/para/suas/imagens)
[end]

APLICAÇÕES INICIADAS AUTOMATICAMENTE AO INICIAR SESSÃO

Ah! Lembra do conky que citei em outro artigo? O que acha de deixá-lo iniciando automaticamente com o fluxbox? Basta adicionar o comando no arquivo ~/.fluxbox/startup. Veja parte do arquivo:

# Applications you want to run with fluxbox.
# MAKE SURE THAT APPS THAT KEEP RUNNING HAVE AN "&" AT THE END.
#
# unclutter -idle 2 &
# wmnd &
# wmsmixer -w &
# idesk &

Adicione logo abaixo das linhas comentadas o comando:

conky &

Não esqueça do "&" para executá-lo em segundo plano.

DICA: TEMA GTK


Você pode adicionar também o xfce-setting-show (para instalar procure pelo pacote xfce4-mcs-manager), o gerenciador de temas gtk do xfce iniciar automaticamente (você já leu como fazer isso) para melhorar a aparência das aplicações em gtk:

xfce-mcs-manager &

E para alterar o tema gtk, digite no Eterm:

$ xfce-setting-show ui

JANELAS SOMBREADAS

Instale o xcompmgr e coloque-o para iniciar automaticamente (insisto em dizer que você já leu como fazer isso só pra garantir :P ):

xcompmgr -c -l 10 &

PROTEÇÃO DE TELA

Já tem o xscreensaver? Eu acho ele bem mais estiloso que o xlock. Portanto, não perca tempo e instale-o e coloque-o para iniciar automaticamente (:P):

xscreensaver -no-splash &

E configure ele através do comando:

$ xscreensaver-demo

TECLAS DE ATALHO

Para mim não existe algo melhor do que tarefas rotineiras sendo executadas por atalhos de teclado ao invés de cliques de mouse. E pra quem sentiu falta desse recurso e já estava reclamando ao pensar que o fluxbox ia te deixar à ver navios, vou explicar da forma mais simples como fazer isso.

Por padrão (Aqui no meu Debian Lenny), o fluxbox deixa o arquivo ~/.fluxbox/keys com o seguinte conteúdo:

OnDesktop Mouse1 :HideMenus
OnDesktop Mouse2 :WorkspaceMenu
OnDesktop Mouse3 :RootMenu
OnDesktop Mouse4 :NextWorkspace
OnDesktop Mouse5 :P revWorkspace

Mod1 Tab :NextWindow
Mod1 Shift Tab :P revWindow
Mod1 F1 :Workspace 1
Mod1 F2 :Workspace 2
Mod1 F3 :Workspace 3
Mod1 F4 :Workspace 4
Mod1 F5 :Workspace 5
Mod1 F6 :Workspace 6
Mod1 F7 :Workspace 7
Mod1 F8 :Workspace 8
Mod1 F9 :Workspace 9
Mod1 F10 :Workspace 10
Mod1 F11 :Workspace 11
Mod1 F12 :Workspace 12

Eu não modifico as linhas que tem "OnDesktop" porque são as ações do mouse ao clicar na área de trabalho (Já está bom para o meu gosto, fique à vontade para deixar do seu).
Note que o arquivo é meio que "intuitivo" (tá bom, eu sei…sei que isso intimida quem não é acostumado) e segue geralmente o padrão:

Tecla :Ação

Então vamos lá! Vou explicar o primeiro atalho:

Mod1 Tab :NextWindow

Onde Mod1 é Alt, ou seja, Alt+Tab Próxima Janela.

Como é de costume utilizar geralmente Ctrl + Fx (onde x é o número da área de trabalho virtual) em outros gerenciadores de janelas, veja o exemplo:
OnDesktop Mouse1 :HideMenus
OnDesktop Mouse2 :WorkspaceMenu
OnDesktop Mouse3 :RootMenu
OnDesktop Mouse4 :NextWorkspace
OnDesktop Mouse5 :P revWorkspace

Mod1 Tab :NextWindow
Mod1 Shift Tab :P revWindow
Control F1 :Workspace 1
Control F2 :Workspace 2
Control F3 :Workspace 3
Control F4 :Workspace 4
Mod1 F4 :Close

Mod4 r :Exec fbrun
Mod4 Up :ExecCommand aumix -v +5
Mod4 Down :ExecCommand aumix -v -5

Control Mod1 Escape :ExecCommand xkill

Não esqueça do aumix instalado para "aumentar e abaixar o volume" através do atalho: "Super + Cima" e "Super + Baixo".

Super é geralmente aquela tecla com aquele logotipo maldito. E é referenciada no arquivo por Mod4. Eu utilizo muito ela para atalhos, já que é uma tecla que geralmente não serve pra nada

Ah! E Lembre-se de que quando o xfce-mcs-manager estiver em execução, passa a valer os atalhos definidos do xfce.

Para definir pelo xfce-mcs-manager:

$ xfce-setting-show keyboard

Segue o link do antes e depois:

Espero que gostem do fluxbox!

Aumentando a segurança do Servidor SSH

By Geowany, 5 de junho de 2010

Pra começo de tudo, aposto que a maioria sabe aquelas regrinhas básicas tipo: mudar a porta do servidor, não permitir o root logar.

Mas se não souber, basta editar algumas coisinhas no arquivo /etc/ssh/sshd_config:

Mudar a porta:
Procure pela linha Port, a alteração é bem sugestiva.
Assim evitamos boa parte dos engraçadinhos que ficam futricando a grande rede com essas ferramentas criadas para ser "faca de dois gumes".

Não deixar o root logar:
Altere a linha PermitRootLogin yes para PermitRootLogin no
Assim evitamos de o usuário usar algum exploit por exemplo que já tomaria poder de "Godmaster" no sistema, colocando uma barreira que é ter descobrir o nome de um usuário válido no sistema. Por isso sou contra quem fala mal do sudo.

Segue abaixo umas regrinhas para você colocar no seu script de firewall:

PORTSSH="4578"
iptables -A INPUT -p tcp –dport 22 -j LOG
iptables -A INPUT -p tcp –dport 22 -j DROP
iptables -A INPUT -p tcp –dport $PORTSSH -m state –state NEW -m recent –set –name SSH
iptables -A INPUT -p tcp –dport $PORTSSH -m state –state NEW -m recent –update –seconds 60 –hitcount 4 –rttl –name SSH -j DROP
iptables -A INPUT -p tcp –dport $PORTSSH -j ACCEPT

Na primeira linha, altere o valor 4578 que usei como exemplo para o número da sua porta ssh.
A segunda é pra logar informações da "criança" que tentar abrir conexão direto na porta 22 que é a padrão do ssh.
A terceira e quarta é pra evitar um ataque de força bruta.
E a quinta é pra abrir a verdadeira porta do servidor ssh.
E o root você já sabe, é o usuário mais poderoso do seu sistema e que ninguém além de você deve tocar nele.

Pessoal, o negócio é o seguinte, a finalidade desse minúsculo artigo é apenas uma base para a bíblia do iptables. Mas garanto que melhora muito pra quem conecta direto na internet ao invés de usar um NAT. Não é uma solução definitiva mas não deixa seu sistema tão vulnerável. Comentem. Tanto quem gostar do tópico e quem não gostar… Afinal estamos aqui para ensinar e aprender também!

OfficeFolders theme by Themocracy