Carregando o SSH-Agent com o KDE

maio 15th, 2008 por Daniel No comments »

Dica rápida: Para carregar o ssh-agent na inicialização do KDE basta criar um script no diretório .kde/env/ do diretório home.

daniel@vaio:~$ vim .kde/env/sshagent.sh
#!/bin/bash
eval `ssh-agent`
~
~
~
~
~
:wq
daniel@vaio:~$

O ssh-agent serve para conexões com chaves públicas/privadas geradas pelo ssh-keygen, estas chaves facilitam a vida quando se trabalha, ou se conecta, com multiplos servidores diferentes.

MySQL and ‘debian-sys-maint’ account

maio 12th, 2008 por Daniel No comments »

Uma característica de funcionamento do MySQL no Debian é o usuário ‘debian-sys-maint’ que gerencia o funcionamento e administração do serviço. Migrando de um servidor rodando “Slackware” eu acabei eliminando este usuário. Tive como consequência uma série de falhas nos scripts administrativos do MySQL. Esta nota serve para ajudar na restauração deste usuário para que estes scripts voltem a funcionar.
Primeira tarefa é olhar qual a senha que o Debian gerou na instalação do MySQL.

jupiter:~# cat /etc/mysql/debian.cnf
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost
user     = debian-sys-maint
password = kdlkjiuqEIjd881kDi
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
user     = debian-sys-maint
password = kdlkjiuqEIjd881kDi
socket   = /var/run/mysqld/mysqld.sockbasedir  = /usr
jupiter:~#

Agora é só criar o usuário no MySQL com esta senha :

jupiter:~# mysql -uroot -p'secretpass'
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 18
Server version: 5.0.32-Debian_7etch5-log Debian etch distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.  

mysql> use mysql\g
Query OK, 0 rows affected (0.00 sec)  

mysql> GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost'
IDENTIFIED BY 'kdlkjiuqEIjd881kDi' WITH GRANT OPTION\g
Query OK, 0 rows affected (0.00 sec)  

mysql> flush privileges\g
Query OK, 0 rows affected (0.00 sec)  

mysql> quit
Bye  

jupiter:~#

Detalhe importante: no comando “GRANT” eu não utilizei o “IDENTIFIED BY PASSWORD” como é o usual na criação de usuários comuns, isto porque a senha no arquivo debian.cnf já está encriptada.

Incluindo caminho da aplicação no caminho de procura do Perl automaticamente

março 31st, 2008 por Daniel No comments »

Quando desenvolvo projetos extensos em Perl utilizo módulos e procuro organizá-los de forma lógica e concisa.
Outro hábito é criar um diretório onde fiquem scripts de “teste” e outro diretório com scripts que já podem ser utilizados em “produção”. O chato nisto é que ao mover do ambiente de “teste” para o ambiente de “produção” é necessário alterar também o caminho para que o script busque os módulos no lugar certo. Uma forma de automatizar isto é usar o módulo “FindBin” que vem na instalação do Perl:

use FindBin qw/$Bin/;
use lib $Bin

Colocando estas duas linhas no ínicio do script, elimina-se a necessidade de fazer esta alteração de “caminhos” manualmente.

Wireless Realtek RTL8187B no Debian 4

março 7th, 2008 por Daniel No comments »

A primeira coisa a ser feita é baixar o driver aqui. O driver é o mesmo da Realtek; segundo o responsável a única modificação que ele fez foi descartar as outras placas compatíveis, deixando suporte somente a 8187b.
É importante ressaltar que, para compilar o driver, o pacote kernel-headers e suas dependências devem estar instalados. Pelo que percebi, no Debian isto não é feito na instalação. Estou nas minhas primeiras experiências com o Debian, usei o “expert mode” mas mesmo assim não me foi oferecido escolher os pacotes que eu desejava (Ambientado com Slackware me senti meio perdido, mas o gerenciador de pacotes do Debian é poderosíssimo, não tive grandes dificuldades para acrescentar os pacotes necessários).

daniel@toshiba:~$ su
Password:
toshiba:daniel# tar -xzvf rtl8187b-modified-dist.tar.gz
toshiba:daniel# cd rtl8187b-modified/

Com o pacote devidamente descompactado é importante dar uma explorada através das informações e arquivos disponíveis. Há instruções para compilação, instalação do driver e os códigos fonte, que são um excelente método para compreender como as coisas funcionam. Para compilar, o comando “makedrv” faz o trabalho necessário:

toshiba:rtl8187b-modified# ./makedrv

Caso tudo tenha corrido normalmente o driver já está pronto para uso. Pode-se testar com os scripts fornecidos junto com o pacote.

toshiba:rtl8187b-modified# ./wlan0up
toshiba:rtl8187b-modified# ifconfig wlan0
wlan0      Encapsulamento do Link: Ethernet  Endereço de HW 00:16:44:**:**:**
          UP BROADCASTRUNNING MULTICAST  MTU:1500  Métrica:1
          RX packets:1432 errors:0 dropped:96 overruns:0 frame:0
          TX packets:1541 errors:0 dropped:0 overruns:0 carrier:0
          colisões:0 txqueuelen:1000
          RX bytes:906187 (884.9 KiB)  TX bytes:212215 (207.2 KiB)

toshiba:rtl8187b-modified# ./wlan0down

Bom, aparentemente tudo pela ordem.
O pacote fornece um install, mas pelo que percebi lendo o script, ele funciona apenas para o Ubuntu. No Debian não deu certo, então, fiz a instalação manualmente.

toshiba:rtl8187b-modified# cd /lib/modules/2.6.18-6-amd64/kernel/net/ieee80211/
toshiba:ieee80211# mv ~daniel/rtl8187b-modified/ieee80211/*.ko .
toshiba:ieee80211# cd ../../drivers/net/wireless/
toshiba:wireless# mv ~daniel/rtl8187b-modified/rtl8187/r8187.ko .
toshiba:wireless# cd
toshiba:~# depmod -aA

Os drivers do ieee80211 da Realtek não irão sobrepor os drivers nativos; os drivers ieee80211 da Realtek têm o sufixo “-rtl” em seus nomes, isto os diferencia dos drivers nativos do kernel.
O comando “depmod” atualiza o arquivo de dependências do kernel “modules.dep”; a opção “-a” faz com que o depmod procure em todos os diretórios de módulos do kernel e o “-A” com que somente as diferenças entre o antes (do depmod) e o que há de novo (depois da cópia dos arquivos “.ko”‘) sejam levadas em conta. Isto torna este processo mais rápido.
Com o driver instalado no sistema e pronto para usar, basta algumas modificações para carregá-los no boot, editando o arquivo /etc/modules.

toshiba:~# vi /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

loop
sbp2
ieee80211_crypt-rtl
ieee80211_crypt_wep-rtl
ieee80211_crypt_tkip-rtl
ieee80211_crypt_ccmp-rtl
ieee80211-rtl
r8187
~
~
~
~
~
:wq

Pronto. No reboot os drivers serão carregados e a placa wlan0 estará disponível.
Sou usuário do KDE, que fornece o KNetworkManager para gerenciar conexões de rede. Isto facilita muito a conexão com redes sem fio, usando qualquer tipo de encriptação, no entanto, no Debian o padrão é o GNOME que usa o NetworkManager para gerenciar as conexões e este só fornece suporte a encriptação por WEP.
A título de curiosidade eu configurei o “wpa_supplicant” e funcionou perfeitamente; ele já está disponível na instalação do Debian e é bastante flexível, mas… Isto é assunto para outra hora.

Manual installation of patches on Solaris

fevereiro 29th, 2008 por Daniel No comments »

Muitos patchs/atualizações baixadas pelo update manager do Solaris precisam ser aplicados e ou instalados manualmente. A ferramenta informará quando isto for necessário. Segue um exemplo de como executar a tarefa:

root@sun4u_nodeF:~# cd /var/sadm/spool/
root@sun4u_nodeF:spool# jar xvf 121430-22.jar
root@sun4u_nodeF:spool# cd 121430-22

Verifique se os arquivos : prepatch ou postpatch existem.  Se existir um dos dois ou os dois, eles precisam ter permissão de execução.

root@sun4u_nodeF:121430-22# chmod 755 prepatch

E/Ou:

root@sun4u_nodeF:121430-22# chmod 755 postpatch

Agora é só aplicar o patch:

root@sun4u_nodeF:121430-22# patchadd /var/sadm/spool/121430-22

Host “unknown” in Solaris with DHCP

fevereiro 25th, 2008 por Daniel No comments »

Dica rápida:

Quando se configura o Solaris para obter o IP de um servidor DHCP que não fornece o nome de host; como é o caso do meu roteador LinkSys (e da maioria dos roteadores de pequeno porte), o sistema fica nominado como “unknown” ou “desconhecido” (em bom português). Há uma solução simples para isto, que é forçar um nome de host criando/editando o arquivo “/etc/nodename” e deixando-o com o nome que se deseja utilizar, exemplo:

root@sun4u_nodeF:~# vi /etc/nodename
sun4u_nodeF
~
~
~
~
:wq
root@sun4u_nodeF:~#

Durante a recarga do sistema, já será mostrado o nome de host setado corretamente. É necessário informar ao DHCPAGENT que você tem um hostname para esta placa e que ele deve informar isto ao servidor DHCP:

root@sun4u_nodeF:~# vi /etc/defaults/dhcpagent

Altere a seguinte linha:

#REQUEST_HOSTNAME=no

Para:

REQUEST_HOSTNAME=yes

Edite os arquivos /etc/hostname.<interface> e coloque o seguinte:

root@sun4u_nodeF:~# vi /etc/hostname.hme0
inet sun4u_nodeF
~
~
~
~
:wq
root@sun4u_nodeF:~# reboot

Isto informará ao DHCP o hostname corretamente e o sistema está corretamente nomeado.