You are on page 1of 12

O slackware é a distribuição linux Em todos esses anos, a distro Um produto de extrema qualidade

mais antiga ainda em atividade. conquistou ardorosos utilizadores, para usuários com esta mesma
Tendo sido criada por Patrick principalmente graças à sua filosofia característica. E este zine é de
Volkerding em 1993, a partir da SLS. de simplicidade e estabilidade. slacker para slacker.

slackware
Slackware is a registered trademark of Slackware Linux, Inc. zine
31 de Dezembro de 2005 – Edição #12

Editorial
Índice
Última edição do ano! E, até agora,
o nosso recorde de atraso, se
levarmos em consideração que essa é
Automatizando a Construção de Pacotes
a edição de Novembro -;) Herbert Faleiros
2
Para a virada do ano montamos um
zime com artigos bem interessantes. Brincando com Bits
Um sobre como tornar o processo de Nycholas Oliveira e Oliveira
criação de pacotes mais automático 6
utilizando scripts, agora não
existem desculpas para não fazer Instalando a D-Link DSB C110
seus próprios pacotes. Yukatan “Kenjiro” Costa
8
Na área de hardware, um pequeno
tutorial de como instalar e utilizar Instalando e Usando o rdesktop
no amsn uma webcam da D-Link. Clayton Eduardo dos Santos
9
Para os administradores, a
instalação do rdesktop (para dar
manutenção em máquinas Windows), um Autenticando o Slackware SEM PAM em
passo-a-passo simples e rápido da uma base LDAP
instalação do PostFix usando pacotes Flávio do Carmo Júnior
já existentes e uma bom artigo sobre 10
como configurar uma máquina rodando
slackware como cliente de uma rede Instalando o PostFix
com autenticação LDAP. Fabiano Silva de Carvalho
12
Para os iniciantes, um artigo de
como calcular os “números” de
permissão. Particularmente, acho
muito mais fácil aprender a contar
até sete em binário do que fazer as
contas do artigo -;), mas, cada um
tem a sua maneira de fazer as
coisas, e essa é uma das vantagens
do Software Livre, justamente a
Liberdade!

Boa Leitura e Feliz 2006!

Piter PUNK

slackware to the real nerds

Reprodução do material contido nesta revista é permitida desde que


se incluam os créditos aos autores e a frase:
“Reproduzida da Slackware Zine #11.5 –
slack
www.slackwarezine.com.br”
com fonte igual ou maior à do corpo do texto e em local visível
users
Automatizando a
Construção de Pacotes
É interessante seguirmos este "padrão" para
Arquivos SlackBuild são shell scripts evitarmos editar o SlackBuild toda vez que
cuja finalidade é a automatização de todo quisermos mudar apenas uma variável, por
processo de compilação de pacotes para o exemplo, quando alterarmos a arquitetura do
slackware. processador ou a versão/revisão do pacote.
Estes scripts também podem ser utilizados Este arquivo deve seguir o padrão
para otimização, recompilação ou "nome_do_programa.options" (ex.
personalização de pacotes oficiais, ou ainda amarok.options).
quando quisermos seguir os padrões do
Slackware na construção de pacotes não- Um exemplo deste tipo de arquivo (seguindo
oficiais, bastando para isto editarmos poucos os padrões do slackware) seria:
parâmetros e deixá-los (os SlackBuild's)
responsáveis por todo o trabalho pesado # Versão/nome do programa.
(configurar, compilar, personalizar, etc). NAME=amarok
VERSION=1.3.6
Este artigo pressupõe que o leitor esteja
familiarizado com todo o processo de # Revisão do pacote.
construção de pacotes para o slackware. BUILD=1

Como exemplo descreverei o script que # Arquitetura do processador.


utilizo para construir o pacote do amaroK (um ARCH=i486
áudio player para o KDE).
# target arch, i486 para
Estes arquivos seguem regras bem simples e # qualquer x86 de 32 bits.
possuem padrões (alguns não oficiais) a TARGET=i486
serem seguidos, os principais deles são:
# flags utilizadas pelo compilador.
1. Nomenclatura do arquivo .SlackBuild CPUOPT="-O2 -march=$ARCH -mcpu=i686"

Basta seguirmos o padrão # Número de tarefas "paralelas".


"nome_do_programa.SlackBuild" (ex. NUMJOBS=-j4
amarok.SlackBuild)
# Arquivos temporários.
TMP=/tmp
2. Arquivo de descrição do pacote (slack-
desc) # Código fonte.
SRC=$NAME-$VERSION.tar.bz2
Devemos incluir também um arquivo
(necessário à construção do pacote) para # Pré-instalação do programa.
descrevermos o que estamos empacotando, PKG=$TMP/package-$NAME
são os arquivos slack-desc.
# Arquivo já empacotado.
3. Arquivo de configuração (.options) TGZ=$NAME-$VERSION-$ARCH-$BUILD.tgz

Podemos adicionar (opcionalmente) outro # Documentação.


arquivo contendo as configurações utilizadas DOCS=$PKG/usr/doc/$NAME-$VERSION
durante a construção do pacote, nele
incluiremos informações diversas como # Onde o programa será instalado.
versão, revisão, flags de compilação, PREFIX=/opt/kde
arquitetura do processador...
4. Script (arquivo) .SlackBuild
# Configurações utilizadas.
CONFIGURE="--prefix=$PREFIX \ Inicialmente adicionamos informações sobre o
--build=$TARGET-slackware-linux" que o script faz (e informações que forem
pertinentes, como licença, autor, etc).
# doinst.sh e slack-desc.
INSTALL=$PKG/install
#!/bin/sh
#
Quando não quisermos utilizar este tipo de # amarok.SlackBuild
arquivo (.options), as variáveis deverão ser # (amaroK - Slackware build script)
instanciadas no próprio SlackBuild. # author: Herbert Alexander Faleiros
# <herbert@faleiros.eti.br>
Em scripts mais elaborados podemos
adicionar rotinas que detectam Feito isto armazenamos o diretório corrente e
automaticamente a revisão do pacote, a em seguida carregamos o nosso arquivo de
última versão estável, efetuam o download do configurações:
código-fonte ou permitem o acesso ao código
atual (não-estável) de desenvolvimento (via CWD=`pwd`
CVS). . $CWD/amarok.options

Para a versão, poderíamos fazer o seguinte O próximo passo é efetuarmos uma "limpeza"
(opcionalmente implementando o que foi pré-construção (e criarmos alguns dos
descrito acima): diretórios que serão utilizados mais adiante):

# Onde o projeto está hospedado rm -rf $PKG $NAME-$VERSION


# (lista os códigos fonte). mkdir -p $PKG $DOCS $INSTALL
HOST="http://\
prdownloads.sourceforge.net/\ O procedimento acima certifica-se de que não
$NAME/?sort_by=date&sort=desc" contaminaremos o pacote com
versões/revisões antigas.
# Tenta detectar a última versão
# estável do programa. Se quisermos (opcionalmente) efetuar o
VERSION=`lynx -dump -source "$HOST" |\ donwload do código-fonte (automatização do
grep $NAME- | \ arquivo de opções já citado):
head -1 | \
sed -r 's/(.+'$NAME'-)\ test -f $SRC || wget $HOST/$SRC
(.+)(\.tar.+)/\2/'`
Neste caso é necessário sobreescrever a
Este algoritmo funciona bem (sem alterações) variável HOST no arquivo de opções (faça isto
para a maioria dos projetos hospedados no
no final do arquivo):
sf.net.
HOST=http://ufpr.dl.sourceforge.net/\
E para atualizar automaticamente a revisão sourceforge/$NAME
do pacote:
No exemplo acima efetuaremos o download
# Última revisão (caso exista). de um dos mirrors do sf.net. Em seguida
test -f $NAME.build || \
extraímos/acessamos o código-fonte:
echo 0 > $NAME.build
tar -xjvf $SRC
# Incrementa a revisão.
cd $NAME-$VERSION
BUILD=`echo "$(cat $NAME.build) + 1"|\
bc`
Depois configuramos e compilamos o
# Armazena a atual. programa:
echo $BUILD > $NAME.build
CFLAGS=$CPUOPT CXXFLAGS=$CFLAGS
./configure $CONFIGURE
Com isto, na próxima revisão/versão do
make $NUMJOBS || exit 1
pacote não será mais necessário editarmos
nem mesmo o arquivo de opções. Poderiamos
Terminado o processo de compilação de todos
até mesmo adicionar um script destes (com
os arquivos necessários ao funcionamento do
detecção automática) ao cron e mantermos o
programa instalamos o mesmo em um local
programa sempre atualizado sem mesmo
temporário, isto é necessário para que
ficarmos sabendo.
possamos manipular os arquivos antes de
instalá-los definitivamente:
make install DESTDIR=$PKG Por segurança verificamos/(re)setamos as
permissões/donos dos arquivos:
Alguns programas não implementam o
DESTDIR nos Makefile's, nestes casos chown 0.0 . -R
devemos editar manualmente o arquivo com
as configurações para que os mesmos sejam # Consertamos o que eventualmente o
instalados corretamente no diretório # chown acima estragou.
temporário $PKG, como exemplo descrevo o for i in /bin /sbin /usr/bin \
que costumo fazer com o Makefile dos /usr/sbin; do
chown 0.bin $i -R
drivers do MPlayer (Matrox/Radeon):
done
# Teste de sanidade.
cat Makefile | \
for i in a-st go-w; do
sed -r 's/^(MDIR.+ )\
chmod $i . -R
(\/lib.+)/\1$(DESTDIR)\2/' > \
done
Makefile.tmp
mv Makefile makefile.old
mv Makefile.tmp Makefile Em seguida "estripamos" os ELFs (binários e
bibliotecas executáveis):
Isto corrige a ausência do DESTDIR, mas cada
find . | xargs file | grep ELF | \
programa deve ser analisado individualmente. cut -d: -f1 | \
Para quem tem menos paciência (ou não quer xargs strip –strip-unneeded \
analisar os Makefile's) uma opção seria 2>/dev/null
utilizar algo como o checkinstall (eu acho
um pecado construir pacotes com este tipo de Renomearmos todos os arquivos de
programa, mas enfim...). configuração existentes seguindo o padrão
"nome_do_arquivo.new", por exemplo:
Outro padrão a ser seguido é adicionarmos a
documentação do programa, licenças, mv $PKG/etc/wgetrc $PKG/etc/wgetrc.new
autores, ao $PKG/usr/doc/$NAME-$VERSION:
Isso garante que, durante um upgradepkg,
cp [A-Z]* $DOCS tais arquivos (já existentes e/ou
cd $DOCS personalizados) não sejam sobrescritos, caso
rm -f Makefile*
contrário teríamos de reconfigurar novamente
todo o programa.
Devido à padronização no processo de
documentação da maioria dos programas as Outro padrão a seguirmos é compactarmos os
instruções genéricas acima funcionam na manuais (no caso do KDE os manuais são
grande maioria dos pacotes, pois arquivos armazenados em $PKG$PREFIX/man/man?/*):
como AUTHORS, COPYING, LICENSE, TODO,
INSTALL, ChangeLog, enquadram-se bem ao if [ -d $PKG/usr/man ]; then
padrão que passamos ao cp. gzip -9 $PKG/usr/man/man?/*
fi
Um efeito colateral é a cópia de arquivos
como Makefile's, portanto a instrução final Finalmente criamos o pacote:
remove os mesmos.
makepkg -l y -c n $TGZ
Outro procedimento útil no caso do amaroK
seria criar um link simbólico para a Os parâmetros instruem o makepkg a remover
documentação em HTML: todos os links simbólicos (e adiciona-los ao
$INSTALL/doinst.sh) e a não alterar
ln -sf $PKG$PREFIX/share/doc/HTML nenhuma permissão/dono no pacote a ser
criado.
Feito isto acessamos o diretório onde pré-
instalamos o programa e efetuamos as tarefas Opcionalmente podemos gerar os hashes do
pós-compilação ainda pendentes: pacote (útil para verificações de integridade):
cd $PKG for HASH in md5 sha1; do
${HASH}sum $TGZ > $TGZ.$HASH
Copiamos o arquivo de descrição (slack- done
desc) para seu local final:
Ou ainda assinarmos o mesmo (não é muito
cp $CWD/slack-desc $INSTALL viável/seguro num SlackBuild):
gpg -sda $TGZ Autores
Para quem quiser instalar/atualizar pelo Clayton Eduardo dos Santos, Trabalha
próprio SlackBuild, basta adicionar: com Linux desde 2003 e com Slackware
desde 2004. É matemático, mestre em
upgradepkg $TGZ || installpkg $TGZ Engenharia Elétrica pela USP de São Carlos
e atualmente desenvolve seu projeto de
5. Arquivo doinst.sh pesquisa de Doutorado no Departamento de
Engenharia Elétrica na USP de São Carlos ,
utilizando ferramentas 100% baseadas em
Neste arquivo o makepkg armazena as software livre.
instruções para que sejam recriados os links
simbólicos removidos, é usado também para Fabiano Silva de Carvalho é Analista de
tarefas pós-instalação. Sistemas pela Universidade Salgado de
Oliveira (2000) e mestrado em Engenharia
Caso haja algum arquivo renomeado para a Elétrica e de Computação pela UFG (2003).
extensão .new é necessário adicionarmos Atualmente é Professor Assistente da
instruções para que os mesmos retornem ao Universidade Salgado de Oliveira, Analista
de Sistemas da Companhia Energética de
seu estado inicial caso não seja necessário
Goiás e Professor Universitário da Faculdade
manter arquivos pré-existentes (geralmente o de Tecnologia Senai de Desenvolvimento
programa está sendo instalado pela primeira Gerencial. Tem experiência na área de
vez), no caso citado anteriormente (wget) Ciência da Computação, atuando
seria algo como: principalmente nos seguintes temas:
Sistemas Multiagentes, Aprendizado por
if ! [ -e /etc/wgetrc ]; then Reforço, Data Warehouse, Implementação e
mv /etc/wgetrc.new /etc/wgetrc Integração. Publicou 3 trabalhos em anais de
fi eventos.Trabalha com Linux desde 1996.

Flavio do Carmo Junior a.k.a. drkn, 22


Antes de executar o SlackBuild é necessário
anos, cursando Sistemas de Informações.
ativar seu bit de execução do mesmo e que Teve seu primeiro computador, um 386, aos
todos os arquivos necessários à construção do 10 anos que o satisfez ate enjoar de "Prince
pacote encontrem-se disponíveis: of Persia" depois de uns 2 anos, voltou a
mexer em computadores em 95 quando
$ chmod +x amarok.SlackBuild ganhou um Celeron 400Mhz, quakemaniaco
de carteirinha se viu em desvantagem
$ ls -l quando surgiu o ADSL e então iniciou-se no
-rw-r--r-- 1 herbert users 8649808 \ mundo Linux em 99 pulando por várias
2005-11-08 03:40 \ distribuições até conhecer o slackware.
amarok-1.3.6.tar.bz2 (ponto-final :)
-rwxr--r-- 1 herbert users 944 \
Herbert Alexander Faleiros (aka
2005-09-13 02:44 \
ratmannn), programador, graduando em
amarok.SlackBuild Física pela UFSCar. Seu primeiro contato
-rw-r--r-- 1 herbert users 642 \ com o Slackware ocorreu em 2000.
2005-09-13 02:40 \ Atualmente trabalha desenvolvendo soluções
amarok.options em Java para servidores de aplicações, nas
-rw-r--r-- 1 herbert users 250 \ horas vagas escreve artigos sobre
2005-09-13 02:46 \ criptografia e build scripts para o Slackware.
slack-desc
Nycholas de Oliveira e Oliveira, 20 anos,
Agora é só executar (como root) o se interessou por linux em 2003 mais
SlackBuild em questão: profissionalmente em 2004 felizmente
trabalhando com slackware logo de cara :D.
Trabalha como administrador de sistemas e
# ./amarok.SlackBuild redes, programador em uma fundação de
uma universidade pública e luta pesado
O básico é isso, quem estiver interessado em todos os dias para passar no vestibular.
maiores detalhes (ou scripts mais
complexos/elaborados) poderá consultar os Yucatan "Kenjiro" Costa, Bacharel em
sources da própria distro ou os SlackBuild's Ciência da Computação e Pós-Graduado
que se encontram no endereço (Especialista) em Programação Avançada e
http://www.faleiros.eti.br/SlackBuild. Redes. Trabalha como Administrador de
Redes da Escola Técnica Alto Jacuí. Árduo
defensor do Slackware Linux, botou as mãos
em um computador pela primeira vez em
Herbert Faleiros 1985 (um CP-500), mas só teve contato com
<herbert@faleiros.eti.br> Linux em 1997 (Slackware Linux 3.0).
Brincando com Bits
Todo mundo sabe que permissões de arquivos
Aí multiplicamos o primeiro número pelo
e diretórios e importante, principalmente para
garantir a segurança do sistema contra segundo. Mais só vamos multiplicar os
pessoas não autorizadas e/ou maliciosas. E números de estão abaixo dos bits que vamos
sabemos também como atribuir/retirar ativar:
permissões de um arquivo ou diretório. Para
r - x
quem ainda não sabe disso vai alguns links
2 1 0
logo abaixo sobre o assunto:
2 2 2
-----
http://focalinux.cipsga.org.br/guia/iniciante/ch 4 - 1
-bas.htm#s-basico-arquivo
http://focalinux.cipsga.org.br/guia/intermediar
Agora os matemáticos de plantão vão me
io/ch-disc.htm#s-disc-sistarq
crucificar vivo! 0*2=1 ?!? Isso mesmo quando
http://focalinux.cipsga.org.br/guia/intermediar
for multiplicação por 0 atribui-se 1 ao
io/ch-perm.htm
resultado e não 0. Agora tudo explicado
Por outro lado poucas pessoas sabem como ninguém vai mais me destroçar :D.
contar os bits de permissão de
arquivos/diretórios. Depois disso tudo é só somar o resultado das
multiplicações:
Por exemplo quando se faz o comando:
4 + 1 = 5
slack@zine:~$ chmod 0754 file
slack@zine:~$ ls -l file chmod u=rx e a mesma coisa que chmod
-rwxr-xr-- 1 slack zine file 0500:

Que seria a mesma coisa que: slack@zine:~$ chmod u=rx file


slack@zine:~$ ls -l file
slack@zine:~$ chmod u=rwx,g=rw,o=r \ -r-x------ 1 slack zine file
file
slack@zine:~$ ls -l file slack@zine:~$ chmod 0500 file
-rwxrw-r-- 1 slack zine file slack@zine:~$ ls -l file
-r-x------ 1 slack zine file
Agora você sabe como transformar as
permissões do tipo caractere (-rwxrw-r--) Faça alguns teste e divirta-se :)).
para numeral (0754)? (Não :P) É isso que vou
slack@zine:~$ chmod u=rwx,g=rw,o=r \
apresentar agora em um artigo simples e
file
direto. Vamos ao que interessa.
slack@zine:~$ ls -l file
-rwxrw-r-- 1 slack zine file
Temos nove variáveis de permissão:
-rwxrwxrwx. Só que vamos trabalhar de três r w x - r w - - r - -
em três (rwx). 2 1 0 - 2 1 0 - 2 1 0
2 2 2 - 2 2 2 - 2 2 2
Vamos ao um exemplo de permissão, r-x. ----- - ----- - -----
Pegamos quais bits queremos ativar e 4 2 1 - 4 2 - - 4 - -
colocamos baixo deles os números nessa +++++ - +++++ - +++++
ordem, 210 e logo abaixo coloca-se os 7 - 6 - 4
números, 222:
slack@zine:~$ chmod 0764 file
r - x slack@zine:~$ ls -l file
2 1 0 -rwxrw-r-- 1 slack zine file
2 2 2
E para os bits especiais? Para os bits
especiais e o mesmo processo, só que em vez
de separar de três em três os caracteres de
Patrick,
all of the Brazilian
permissão vamos fazer o somatório com todos
eles:

slack@zine:~$ chmod u=rx,g=wxs,o=rwxt\

Slack users congratulate


file
slack@zine:~$ ls -l file
-r-x-wsrwt 1 slack zine file

you on the arrival of Briah,


r - x - - w s - r w t
2 1 0
2 2 2
+++++ - +++++ - +++++
- - 2 - 1 => 2 + 1 = 3

r - x
2 1 0
2 2 2
-
-
-
- w s
2 1 0
2 2 2
-
-
-
r w t
2 1 0
2 2 2
and wish you a
Happy New Year!
----- - ----- - -----
4 - 1 - - 2 1 - 4 2 1
+++++ - +++++ - +++++
5 - 3 - 7

slack@zine:~$ chmod 3537 file


slack@zine:~$ ls -l file
-r-x-wsrwt 1 slack zine file

Quando algum bit especial aparecer em caixa-


alta (maiúsculo) significa que o bit normal não
foi setado:

slack@zine:~$ chmod u=rs,g=rxs,o=rt \


file
slack@zine:~$ ls -l file
-r-Sr-sr-T 1 slack zine file

Nesse caso quando você for fazer os cálculos


dos bits normais eles vão ser ignorados onde
um bit especial estiver de caixa-alta, por
exemplo:

r - S - r - s - r - T
2 1 0
2 2 2
+++++ - +++++ - +++++
4 - 2 - 1 => 4 + 2 + 1 = 7

r - - - r - x - r - -
2 1 0 - 2 1 0 - 2 1 0
2 2 2 - 2 2 2 - 2 2 2
----- - ----- - -----

E um feliz 2006 para


4 - - - 4 - 1 - 4 - -
+++++ - +++++ - +++++
4 - 5 - 4
todos os nossos leitores.
slack@zine:~$ chmod 7454 file
slack@zine:~$ ls -l file
-r-Sr-sr-T 1 slack zine file

Até a próxima :P.


Keep slacking!
Slackwarezine team
Nycholas de Oliveira e Oliveira
<nycholas@gmail.com>
Instalando a
D-Link DSB C110
#if 'LINUX_VERSION_CODE' >= \
'KERNEL_VERSION(2,4,20)' && \
S.O. e softwares utilizados
'LINUX_VERSION_CODE' < \
'KERNEL_VERSION(2,5,0)'
Kernel linux 2.6.14
amsn 0.95b (que só se acha via CVS):
http://amsn.sourceforge.net/ Pronto, agora o driver deve compilar.
spca50xx: Então...
http://sourceforge.net/\
projects/spca50x/ # make && make install
videodev:
Se tudo correu bem o driver já está
módulo que já deve estar presente
após a instalação/compilação do seu compilado e instalado. Carregue os módulos
kernel. 'videodev' e 'spca5xx':

# modprobe videodev
Mãos à obra
# modprobe spca5xx
Pelo que pude ver o kernel do Linux não tem
Agora basta instalar o amsn. Baixe o arquivo
suporte nativo a esta minha webcam. Então o
do CVS deles, descompacte com 'tar -zxvf'.
jeito foi pesquisar na Internet por alguma
Entre no diretório recém criado e execute:
alternativa. Falando com um aqui, outro ali,
ouvi falar do tal spca50xx. Mesmo que sua
# ./configure
webcam não seja igual à minha, dê uma olhada # make
no site desse driver. Lá tem uma lista bem
grande de webcams suportadas por esse Agora entre no diretório
driver. utils/linux/capture (que está dentro do
diretório criado na descompactação do amsn).
Bom, na verdade a versão do spca50xx que Rode o script 'test.tcl' para testar sua
eu peguei (spca5xx-20051001) não compila webcam:
com o kernel 2.6.14. Então eu fiz uma
pequena gambiarra. Na hora da compilação # ./test.tcl
do driver deverá surgir mensagens de erro
como abaixo: Primeiro vá em 'Choose device'. Depois em
'Camera settings'. Não precisa perder muito
spca5xx-20051001/drivers/usb/\ tempo fuçando aí. O importante é que o
spca5xx.h:23:40 : missing \ 'test.tcl' ache sua webcam e tu consigas ver
binary operator before token "("
a imagem que a câmera captura.
spca5xx-20051001/drivers/usb/\
spca5xx.h:44:40 : missing \
binary operator before token "(" Supondo que tudo correu bem no 'test.tcl',
spca5xx-20051001/drivers/usb/\ agora é só usar o amsn para transmitir
spca5xx.h:54:41 : missing \ imagens através da sua webcam.
binary operator before token "("
Mas 'peraí'! Tem um segredinho faltando. Em
Bom, minha gambiarra consiste em editar muitos casos ainda ficará faltando liberar no
esse arquivo e modificar essas linhas, firewall e/ou no modem ADSL as portas que
inseririndo aspas simples (') antes e depois o amsn utiliza para a transmissão de vídeo.
de cada constante, ficando assim, Então... basta liberar as portas 6891 e 6892
respectivamente: (protocolo tcp) e tudo funcionará
maravilhosamente bem.
#if 'LINUX_VERSION_CODE' < \
'KERNEL_VERSION(2,5,0)' Espero que outros não passem pelo mesmo
trabalho que eu passei para descobrir que o
#if 'LINUX_VERSION_CODE' > \ furo da bala eram aquelas portas ;)
'KERNEL_VERSION(2,5,41)'
Yucatan “Kenjiro” Costa
<yucatan@globo.com>
Instalando e
Vamos a utilização do software. Suponha que
você tenha uma máquina Window$
XP/2000/2003 com acesso remoto habilitado
cujo ip é 192.168.0.13. A partir de nossa
máquina slackware, basta digitarmos:

Usando o
$ rdesktop 192.168.0.13

O X irá abrir uma janela já com a tela de


autenticação, pedindo um usuário/senha
válidos. Funciona muito bem, no entanto,

rdesktop
como vocês devem ter percebido a resolução
é de apenas 256 cores, para mudar isso, basta
acrescentar:

$ rdesktop -a 16 192.168.0.13

O rdesktop será iniciado com 16 bits de cor.


As opções "-a 8", "-a 15" e "-a 24" também
Bem, como vocês já devem ter percebido, são válidas. O usuário senha também pode ser
costumo escrever artigos baseados em especificado via linha de comando:
situações reais, e normalmente inusitadas,
que surgem no meu cotidiano, mais $ rdesktop -u usuario -p senha \
especificamente, em meu ambiente de -a 16 192.168.0.13
trabalho.
Várias outras
Como todos nós sabemos, infelizmente, é
praticamente impossível trabalharmos em um -z Habilita compressão dos dados
ambiente que roda 100% *nix. A algumas trafegados (só funciona com 8 bits de
semanas atrás, tive de realizar uma cor);
manutenção remota em um máquina com
"aquele" sistema operacional. Como de -f Habilita modo tela cheia, para reverter,
costume, saí em busca de alguma alternativa
basta pressionar as teclas
livre que pudesse ser utilizada no bom e velho
Ctrl+Alt+Enter;
slackware e tive uma grata surpresa.
-T "mensagem" : Muda o título da janela da
A manutenção, obrigatoriamente, deveria ser
sessão;
realizada utilizando o Terminal Service do
Window$ o que num primeiro momento me
-k nome_do_mapa : Habilita mapa de
levou a pensar que não teria êxito em minha
teclado específico para a sessão iniciada.
busca, mas estava enganado, existe uma
excelente alternativa livre para *nix chamada
Existem ainda opções mais específicas, como
rdesktop.
redirecionamento de periféricos e diretórios
locais/remotos, ativação/desativação dos sons
O rdesktop, atualmente na versão 1.4.1, é um
emitidos na sessão remota ou direcionamento
cliente gráfico *nix compatível com o
para a máquina local, cache das imagens
Terminal Service. O processo de instalação é
transferidas, entre outros recursos. Nada que
trivial, primeiro faça o download usando o
um "man rdesktop" não resolva... :)
lynx ou o wget:
Vale lembrar que o rdesktop pode ser
$ lynx \
http://rdesktop.sourceforge.net/ utilizado em conjunto com o LTSP, cuja
$ wget http://\ instalação passo a passo foi publicada em uma
optusnet.dl.sourceforge.net/\ das últimas edições do slackwarezine. Desse
sourceforge/rdesktop/\ modo, é possível se utilizar estações
rdesktop-1.4.1.tar.gz diskless para acesso remoto a ambientes
Windows a partir de estações rodando Linux.
Em seguida, o procedimento “de sempre”:
Bem pessoal, o propósito desse artigo é
$ tar -xvzf rdesktop-1.4.1.tar.gz fornecer uma "dica" de aplicação que pode
$ cd rdesktop-1.4.1 facilitar a vida de um administrador em uma
$ ./configure situação que exija a operação de um
$ make servidor/estação com outro S.O..
$ su
# checkinstall Clayton Eduado dos Santos
<clayton@slackpoint.com.br>
Autenticando o Slackware
***SEM PAM***
em uma base LDAP 2. Descompactando, configurando,
compilando e instalando os pacotes
Introdução
2.1. OpenLDAP
E um procedimento realmente simples, mas
que as vezes nos assusta pelo fato do Lembre que um prompt começando por $ =
slackware ser diferente da maioria das
procedimento possivel como usuário e # =
distribuições por não adotar o PAM, mas
procedimento necessariamente como root
veremos que isso não é problema algum.
Vamos até o diretório do download e seguir os
De qualquer forma, se lermos um pouco sobre
passos:
PAM e LDAP veremos que o LDAP nao faz
requisicao nenhuma ao PAM e que ele nao $ tar -zxvf openldap-VERSAO.tgz
interfere em nada. Pois e, e eu que coloquei o $ cd openldap-VERSAO/
PAM no slackware pra isso, porém não foi $ ./configure --enable-slapd=no \
inválido - eu gosto do PAM. --enable-backends=no \
--enable-slurpd=no
Não vou comentar o funcionamento do PAM e $ make depend
LDAP aqui, pois não é esse o escopo do texto. $ make
Considero que você já conhece o LDAP e # make install
tenha o mínimo de informações sobre a
estrutura (árvore) dele na sua rede. Perceba que na linha ./configure estamos
desabilitando qualquer trabalho do LDAP
1. Pacotes necessários como SERVER, visto que a intenção do artigo
é um client.
- OpenLDAP:
http://www.openldap.org 2.2. nss_ldap
- nss_ldap:
http://www.padl.com/\ Da mesma forma, vamos até o diretório do
OSS/nss_ldap.html download e seguir os passos:

Acesse os sites acima e baixe os softwares nas $ tar -zxvf nss_ldap*.tgz


versões atualizadas. Eu estou utilizando o $ cd nss_ldap-VERSAO/
OpenLDAP 2.3.11 e nss_ldap 2.44 neste $ ./configure
artigo. Para complementar esse artigo, $ make
consulte a edição #2 do slackwarezine, que # make install
também trata de LDAP sem PAM, mas aborda
também a criação do servidor. Feito, bem simples.

Sua empresa usa


slackware?
3. Adaptando as configurações para nosso
ambiente Copie o arquivo
/usr/local/etc/openldap/ldap.conf para
3.1. Editando o arquivo o diretório /etc e outra vez como
/usr/local/etc/openldap/ldap.conf /etc/nss_ldap.conf

# /usr/local/etc/openldap/ldap.conf # # cp /usr/local/etc/\
openldap/ldap.conf \
BASE dc=example,dc=com /etc/ldap.conf
HOST 192.168.0.3 # cp /usr/local/etc/\
openldap/ldap.conf \
rootbinddn cn=Manager,dc=example,\ /etc/nss_ldap.conf
dc=com
nss_base_passwd ou=Users,ou=People,\ 3.2. Editando o arquivo:
dc=example,dc=com?sub /etc/nsswitch.conf
nss_base_shadow ou=Users,ou=People,\
dc=example,dc=com?sub ##### /etc/nsswitch.conf #####
nss_base_group ou=Groups,dc=example,\ passwd: ldap compat
dc=com?one shadow: ldap compat
group: ldap compat
# /usr/local/etc/openldap/ldap.conf # ##### /etc/nsswitch.conf #####

Claro, substitua "dc=example,dc=com" para o Vá até o arquivo /etc/nsswitch.conf e


seu suffix e "cn=Manager", "ou=Users", deixe-o dessa forma. Provavelmente a linha
"ou=Groups" para o sua estrutura "shadow:" não deve existir, adicione-a ou não
correspondente, e HOST pelo IP do servidor conseguirá logar-se no sistema. Se no lugar
LDAP. de "compat" estiver "files" então deixe "ldap
files" mesmo, o compat é um conjunto de
Atenção nas linhas nss_*, verifique e, se arquivos que incluem o files e mais alguns,
necessário, adapte para o seu modelo de base utilizado pelo slackware.
do LDAP. O conteúdo ?sub ou ?one define a
forma de busca que sera feita a partir daquele Salve as alterações, feche o arquivo e vamos
ponto afim de localizar o objeto. testar com o comando:

Depois de tudo acertado nesse arquivo, para # id usuario_da_base_ldap


checar se voce ja consegue uma identificação
na base LDAP, execute o comando: eu fiz:

# ldapsearch -x # id teste
uid=1005(teste) gid=513(Domain Users)
Ele deve retornar a estrutura da sua base com groups=513(Domain Users),
um final parecido com o abaixo, se houver 1001(slackwarezine)
algum erro verifique todos os passos e rode o
comando novamente. O usuario "teste" não existe no sistema atual,
mesmo assim ele pôde ser identificado na
# search result base LDAP e consultado.
search: 2
result: 0 Success 4. Conclusão

O status "0 Success" significa tudo OK. Esse artigo descreve um procedimento muito
simples, porem quando fui colocar meu
Porém, a gente so fez uma conexao a base slackware para autenticar na base LDAP tive
LDAP do servidor pelo nosso LDAP local, muitas dúvidas e muito pouco material foi
agora vamos colocar o slackware para encontrado sobre slackware se autenticando
trabalhar com o LDAP. Primeiro, façamos ele em base LDAP remota.
reconhecer o LDAP local.
Flávio do Carmo Jr <billpp@gmail.com>

Então mostre a sua cara:


www.slackwarezine.com.br/empresas.php
Instalando o PostFix
1) Instale o mysql (Pode ser obtido no CD de
instalação do slackware): 8) Inicie o Servidor de Mensagens

# sh /etc/rc.d/rc.postfix start
# installpkg mysql-4.0.23a-i486-1.tgz
Se tudo foi feito corretamente, neste ponto o
2) Instale o cyrus-sasl (Pode ser obtido no
servidor de mensagens já está funcionando.
CD de instalação do slackware):
Para testar:
# installpkg \
telnet mail.seudominio.com.br 25
cyrus-sasl-2.1.21-i486-3.tgz
9) Instale o imapd (Responável pelos
3) Configure o Servidor de DNS com o
protocolos POP3 e IMAP. Pode ser obtido no
Registro MX adequado (ip do servidor de e-
CD de instalação do slackware).
mail). O Servidor de DNS pode ser outro
servidor na rede. A instalação e configuração
# installpkg imapd-4.62-i486-1.tgz
do servidor de dns não será tratada aqui.
10) O imapd trabalha associado ao inetd.
4) Instale o postfix (Pode ser obtido em
Então devemos configurar o inetd. Para isso
www.linuxpackages.net):
altere o arquivo /etc/inetd.conf
# installpkg \ descomentando as linhas referentes aos
postfix-2.2.5-i486-1stb.tgz protocolos IMAP e POP3..

5) Configure os parâmetros (myorigin, #pop3 stream tcp nowait \


root /usr/sbin/tcpd \
mydestination, mynetworks, myhostname,
/usr/sbin/popa3d
mydomain) no arquivo
#imap2 stream tcp nowait \
/etc/postfix/main.cf . root /usr/sbin/tcpd \
imapd
myorigin = $mydomain
mydestination = $myhostname,\
Retire os # que estão na frente de cada uma
localhost.$mydomain, \
dessas linhas.
localhost, $mydomain
mynetworks = 192.168.0.0/16, \
127.0.0.0/8 11) Inicie o inetd:
myhostname = mail.seudominio.com.br
mydomain = seudominio.edu.br # sh /etc/rc.d/rc.inetd start

No main.cf podem ser configurados em torno 12) Os protcolos POP3 e IMAP já devem estar
de 300 parâmetros. Por hora esses cinco são ativos. Para testar o POP3:
suficientes. Para otimização e configuração
telnet mail.seudominio.com.br 110
extra do servidor de mensagens consulte a
documentação do postfix.
13) Crie as contas dos usuários:
6) Crie um link no diretório /etc para o # adduser
arquivo /etc/postfix/aliases
14) Configure os clientes (thunderbird,
# ln -sf /etc/postfix/aliases \
mozilla-mail, outlook, ...)
/etc/aliases

7) Gere a base de dados de aliases Fabiano Silva de Carvalho


<fscarvalho@gmail.com>
# newaliases

You might also like