<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//pt_BR"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <META NAME="GENERATOR" CONTENT="lfparser_2.18"> <META NAME="LFCATEGORY" CONTENT="System Administration"> <!-- this is used be a number of tools: =LF=AUTHOR: Frédéric Raynal =LF=CAT___: System Administration =LF=TITLE_: Yellow Pages 2 : Do lado do cliente =LF=NUMBER: 162 =LF=ANAME_: article162.shtml --> <TITLE>lf162, System Administration: Yellow Pages 2 : Do lado do cliente</TITLE> <!-- stylesheet added by lfparser: --> <style type="text/css"> <!-- td.top {font-family: Arial,Geneva,Verdana,Helvetica,sans-serif; font-size:12 } pre { font-familiy:monospace,Courier } p.cl { color:#EE9500 } a.nodec { text-decoration:none } p.trans { font-size:8pt; text-align:right } p.clbox { width:50%; alignment:center; background-color:#FFD700; border-style:none; border-width:medium; border-color:#FFD700; padding:0.5cm ; text-align:center } p.foot { background-color:#AAAAAA; color:#FFFFFF; border-style:none; border-width:medium; border-color:#AAAAAA; padding:0.5cm ; margin-top:0.1cm; margin-right:1cm; margin-left:1cm; text-align:center } --> </style> </HEAD> <BODY bgcolor="#ffffff" text="#000000"> <!-- this is generated html code. NEVER use this file for your translation work. Instead get the file with the same article number and .meta.shtml in its name. Translate this meta file and then use lfparser program to generate the final article --> <!-- lfparser can be obtained from http://www.linuxfocus.org/~guido/dev/lfparser.html --> <!-- 2pdaIgnoreStart --> <!-- start navegation bar --> <!-- top navegation bar --> <TABLE cellspacing="0" cellpadding="0" border="0" align="center" width="90%"> <TR bgcolor="#2e2292"> <TD class="top"><TABLE cellspacing="0" cellpadding="0" border="0" width= "100%"> <TR><TD width="144"><IMG src="../../common/images/logolftop.gif" alt="[LinuxFocus-icon]" width="350" height="45" align="left" border="0"></TD> <TD class="top"> <TABLE width="100%"> <TR align="right"> <TD class="top"><A class="nodec" href="../index.shtml"><FONT color= "#DDDDDD" size="-1">Início</FONT></A> | <A class= "nodec" href="../map.html"><FONT color= "#DDDDDD" size="-1">Mapa</FONT></A> | <A class= "nodec" href="../indice.html"><FONT color= "#DDDDDD" size="-1">Índice</FONT></A> | <A class="nodec" href="../Search/index.shtml"><FONT color= "#DDDDDD" size="-1">Procura</FONT></A> </TD> </TR> <TR align="right"> <TD class="top"> <HR width="100%" noshade size="1"> </TD> </TR> </TABLE> </TD> </TR> </TABLE> </TD> </TR> </TABLE> <!-- end top navegation bar --> <!-- blue bar --> <TABLE cellspacing="0" cellpadding="0" border="0" align="center" width="90%"> <TR bgcolor="#00ffff"> <TD><IMG src="../../common/images/transpix.gif" width="1" height= "2" alt=""></TD> </TR> </TABLE> <!-- end blue bar --> <!-- bottom navegation bar --> <TABLE cellspacing="0" cellpadding="0" border="0" align="center" width="94%"> <TR bgcolor="#000000"> <TD> <TABLE cellspacing="0" cellpadding="1" border="0" width= "100%"> <TR align="center"> <TD><A class="nodec" href="../News/index.shtml"><FONT color= "#FFFFFF">Novidades</FONT></A> </TD> <TD><FONT color="#FFFFFF">|</FONT> </TD> <TD><A class="nodec" href="../Archives/index.html"><FONT color= "#FFFFFF">Arquivos</FONT></A> </TD> <TD><FONT color="#FFFFFF">|</FONT> </TD> <TD><A class="nodec" href="../Links/index.shtml"><FONT color= "#FFFFFF">Links</FONT></A> </TD> <TD><FONT color="#FFFFFF">|</FONT> </TD> <TD><A class="nodec" href="../aboutus.html"><FONT color= "#FFFFFF">Sobre LF</FONT></A> </TD> </TR> </TABLE> </TD> </TR> </TABLE> <!-- end bottom navegation bar --> <!-- stop navegation bar --> <!-- SSI_INFO --> <!-- tr_staticssi include virtual --> <!-- tr_staticssi exec cmd --> <!-- addedByLfdynahead ver 1.4 --><TABLE ALIGN="right" border=0><TR><TD ALIGN="right"><FONT SIZE="-1" FACE="Arial,Helvetica">Este artigo está disponível em: <A href="../../English/July2001/article162.shtml">English</a> <A href="../../Deutsch/July2001/article162.shtml">Deutsch</a> <A href="../../Francais/July2001/article162.shtml">Francais</a> <A href="../../Nederlands/July2001/article162.shtml">Nederlands</a> <A href="../../Portugues/July2001/article162.shtml">Portugues</a> <A href="../../Russian/July2001/article162.shtml">Russian</a> <A href="../../Turkce/July2001/article162.shtml">Turkce</a> </FONT></TD></TR></TABLE><br> <!-- SSI_INFO STOP --> <!-- 2pdaIgnoreStop --> <!-- SHORT BIO ABOUT THE AUTHOR --> <TABLE ALIGN=LEFT BORDER=0 WIDTH="30%" > <TR> <TD> <!-- 2pdaIgnoreStart --> <!-- PALM DOC --> <TABLE BORDER=0 hspace=4 vspace=4> <TR> <TD> <font size=1> <img src="../../common/images/2doc.gif" width=34 align=left border=0 height=22 alt="convert to palm"><a href="http://cgi.linuxfocus.org/cgi-bin/2ztxt">Convert to GutenPalm</a><br>or <a href="http://cgi.linuxfocus.org/cgi-bin/2pda">to PalmDoc</a></font> </TD> </TR> </TABLE> <!-- END PALM DOC --> <!-- 2pdaIgnoreStop --> <br> <IMG src="../../common/images/Frederic_Raynal.png"> <BR>por Frédéric Raynal <br> <font size="1"><pappy(at)users.sourceforge.net></font> <BR><BR> <I>Sobre o autor:</I><BR> Frederic Raynal prepara uma tese em informática no <A href="http://www.inria.fr/">INRIA</A>. Ele gosta também ler (tanto Tolkien como Balzac) e ouvir musica (de Mozart a Philip Glass e de Led Zeppelin a Massive Attack passando por Björk e Boris Vian, mas evitando cautelosamente o rap, a techno e outros ruídos ;-) <!-- TRANSLATED TO pt --> <BR><BR><I>Traduzido para Português por:</I><BR> Patrick Carpalhoso <font size="1"><carpalhoso(at)mail.telepac.pt></font> <!-- TRANSLATED TO STOP --> <BR><BR><i>Conteúdo</i>: <UL> <LI><A HREF="#162lfindex0">ypbind</A></LI> <LI><A HREF="#162lfindex1">Ultimos detalhes</A></LI> <LI><A HREF="http://cgi.linuxfocus.org/cgi-bin/lftalkback?anum=162&lang=pt">Forma de respostas para este artigo</A></LI> </UL> </TD></TR></TABLE> <!-- HEAD OF THE ARTICLE --> <br> <H2>Yellow Pages 2 : Do lado do cliente</H2> <IMG src="../../common/images/illustration164.gif" width=100 heigth="100"> <!-- ABSTRACT OF THE ARTICLE --> <P><i>Abstrato</i>: <P> O artigo anterior era uma introdução aos conceitos girando a volta das <I>yellow pages</I> (YPs). Neste artigos iramos ver como configurar o cliente, um exemplo pratico de funcionamento do cliente e uma apresentação das diferentes ferramentas que vem juntas. Por fim, veremos um pouco o NIS+ </P> <HR size="2" noshade align="right"><BR> <!-- BODY OF THE ARTICLE --> <H1>Introdução</H1> <P>O lado cliente dos serviços ligados as <I>yellow pages</I> é baseado essencialmente sobre o demónio <FONT face="Courier New,Courier">ypbind</FONT> : ele emite os pedidos para o servidor das YPs. Em primeiro veremos ao pormenor o seu funcionamento e explicaremos como configura-lo. Depois veremos também como funciona o protocolo NIS. E na ultima parte deste artigo mostrara as diferentes ferramentas presentes no lado do cliente das YPs (as yp-tools). </P> <H1>Configurar o seu cliente NIS</H1>A única coisa a fazer para por a funcionar um cliente NIS numa maquina é de executar o demónio <FONT face="Courier New,Courier">ypbind</FONT>. <A NAME="162lfindex0"> </A> <H2>ypbind</H2> <P><FONT face="Courier New,Courier">ypbind</FONT> estabelece uma ligação entre o cliente e o servidor NIS (to bind significa, entre outra coisa, ligar ou atar em inglês). Essa ligação é visível na directoria /var/yp/binding<SUP><A name=foot1 href="http://main.linuxfocus.org/Portugues/July2001/article162.meta.shtml#foot1">1</A></SUP> pelo o ficheiro convencional chamado domainname.version. A única versão actualmente suportada é a versão 2. Então se o nome do meu domínio NIS é "messie", o ficheiro sera messie.2 </P> <P>O programa <FONT face="Courier New,Courier">ypbind</FONT> pertence ao super-utilizador (i.e. root), ele deve de estar então no /sbin, ou no /usr/sbin. </P> <P>Quando é executado, <FONT face="Courier New,Courier">ypbind</FONT> vai buscar as suas instruções no ficheiro <FONT face="Courier New,Courier"> /etc/yp.conf</FONT>. As entradas nesse ficheiro são : <UL> <LI><B>domain</B> nisdomain <B>server</B> hostname : o cliente dirige-se ao <I>hostname</I> para o domínio <I>nisdomain</I> ; <LI><B>domain</B> nisdomain <B>broadcast</B> : o cliente faz um broadcast sobre a rede local para o que diz respeito ao domínio <I>nisdomain</I> ; <LI><B>ypserver</B> hostname : o cliente dirige-se directamente ao <I>hostname</I> para o domínio local. Nessa configuração o endereço IP do servidor tem de estar no ficheiro /etc/hosts. </LI></UL> <P></P> <P>Se esse ficheiro de configuração esta incorrecto ou não existe, <FONT face="Courier New,Courier">ypbind</FONT> broadcast<SUP><A name=foot2 href="http://main.linuxfocus.org/Francais/July2001/article162.meta.shtml#foot2">2</A></SUP> sobre toda a rede local a pesquisa de um servidor NIS para o domínio local. </P> <P>Algumas operações básicas permitam de verificar que <FONT face="Courier New,Courier">ypbind</FONT> esta correctamente configurado. </P> <OL> <LI>criar o seu ficheiro <FONT face="Courier New,Courier">/etc/yp.conf</FONT> ; <LI>verificar que <FONT face="Courier New,Courier">portmap</FONT> funciona (ps aux | grep portmap). Se não for o caso, executa-lo. Esse programa associa as ports TCP/IP (ou UDP/IP) do computador aos programas. A inicializações de um servidor RPC, este assinala ao <FONT face="Courier New,Courier">portmap</FONT> as portas que ele escuta e os números dos programas que ele é susceptível de executar. Quando um cliente faz um pedido RPC para um numero de programa, ele contacta em primeiro <FONT face="Courier New,Courier">portmap</FONT> para saber a porta para a qual os pacotes RPC devem ser enviados. Como o descreve o funcionamento anterior, é então necessário que <FONT face="Courier New,Courier">portmap</FONT> seja inicializado <B>antes</B> <FONT face="Courier New,Courier">ypbind</FONT> ; <LI>criar o directório /var/yp ; <LI>executar <FONT face="Courier New,Courier">ypbind</FONT> ; <LI>utilizar o comando rpcinfo para se assegurar que <FONT face="Courier New,Courier">ypbind</FONT> funciona correctamente : <UL> <LI>"rpc -p localhost" deveria dar : <TABLE cols=5 width="80%"> <TBODY> <TR> <TD>program</TD> <TD>vers</TD> <TD>proto</TD> <TD>port</TD> <TD></TD></TR> <TR> <TD>100000</TD> <TD>2</TD> <TD>tcp</TD> <TD>111</TD> <TD>portmapper</TD></TR> <TR> <TD>100000</TD> <TD>2</TD> <TD>udp</TD> <TD>111</TD> <TD>portmapper</TD></TR> <TR> <TD>100007</TD> <TD>2</TD> <TD>tcp</TD> <TD>637</TD> <TD>ypbind</TD></TR> <TR> <TD>100007</TD> <TD>2</TD> <TD>udp</TD> <TD>639</TD> <TD>ypbind</TD></TR></TBODY></TABLE>ou <TABLE cols=5 width="80%"> <TBODY> <TR> <TD>program</TD> <TD>vers</TD> <TD>proto</TD> <TD>port</TD> <TD></TD></TR> <TR> <TD>100000</TD> <TD>2</TD> <TD>tcp</TD> <TD>111</TD> <TD>portmapper</TD></TR> <TR> <TD>100000</TD> <TD>2</TD> <TD>udp</TD> <TD>111</TD> <TD>portmapper</TD></TR> <TR> <TD>100007</TD> <TD>2</TD> <TD>udp</TD> <TD>758</TD> <TD>ypbind</TD></TR> <TR> <TD>100007</TD> <TD>1</TD> <TD>udp</TD> <TD>758</TD> <TD>ypbind</TD></TR> <TR> <TD>100007</TD> <TD>2</TD> <TD>tcp</TD> <TD>761</TD> <TD>ypbind</TD></TR> <TR> <TD>100007</TD> <TD>1</TD> <TD>tcp</TD> <TD>761</TD> <TD>ypbind</TD></TR></TBODY></TABLE></LI></UL>ou então <UL> <LI>"rpcinfo -u localhost ypbind" tem de mostrar :<BR> <TABLE cols=5 width="80%"> <TBODY> <TR> <TD>program 100007 version 2 ready and waiting</TD></TR></TBODY></TABLE>ou <TABLE cols=5 width="80%"> <TBODY> <TR> <TD>program 100007 version 1 ready and waiting</TD></TR> <TR> <TD>program 100007 version 2 ready and waiting</TD></TR></TBODY></TABLE></LI></UL>em função da versão de <FONT face="Courier New,Courier">ypbind</FONT>. A mensagem importante é aquela sobre a versão 2. </LI></OL>Agora que <FONT face="Courier New,Courier">ypbind</FONT> funciona correctamente, a vossa maquina passou a cliente NIS. Você já pode utiliza-lo para efectuar pedidos a vosso servidor. Por exemplo, "ypcat passwd.byname" renvio todas as palavras-chave, ordenado por nome de utilizador presente na map correspondente. <A NAME="162lfindex1"> </A> <H2>Ultimos detalhes</H2> Alguns ficheiros devem ainda ser ligeiramente alterados para que as YPs funcionam de maneira eficaz : <UL> <LI>/etc/host.conf : adicionar "nis" para a pesquisa dos hosts ; <LI>/etc/passwd : é necessário adicionar a linha<BR>+::::::<BR>Isso autoriza todas as pessoas presentes na map do servidor a conectar-se sobre o cliente. Podemos afinar essas autorizações com a ajuda dos símbolos + e - para autorizar ou proibir o acesso ao cliente. Por exemplo, para proibir o utilizador guest, é necessário adicionar a linha<BR>-guest::::::<BR>Os campos que não desejamos para modificar devem ficar vazios. Todavia podemos sobrecargar :<BR>+moi::::::/bin/ksh<BR>O utilizador "moi" utilizara ksh em vez do seu shell habitual (definido no /etc/passwd do servidor NIS).<BR>Ultimo ponto importante, NIS suporta perfeitamente a utilização das netgroups<SUP><A name=foot3 href="http://main.linuxfocus.org/Francais/July2001/article162.meta.shtml#foot3">3</A></SUP> <BR>+@sysadmins:::::::<BR>autorizara as conexões dos membros do netgroup sysadmin. <LI>/etc/group (e/ou /etc/shadow para algumas versões da libc) : como para /etc/passwd, é necessário adicionar <BR>+:<BR>Podemos igualmente brincar com as autorizações sobre os grupos com a ajuda de + et -. <LI>/etc/nsswitch.conf : o Network Services Switch permita de definir a ordem na qual as informações devem ser pesquisadas, da mesma maneira que /etc/host.conf. As escolhem são entrem : <TABLE cols=2 width="80%"> <TBODY> <TR> <TD>nisplus</TD> <TD>pesquisar via NIS+ (i.e. NIS versão 3, uma versão segura de NIS)</TD> <TR> <TD>nis</TD> <TD>pesquisa via NIS (NIS version 2, alias as YPs</TD> <TR> <TD>dns</TD> <TD>pesquisa via um DNS (Domain Name Server)</TD> <TR> <TD>files</TD> <TD>pesquisar nos ficheiros locais</TD> <TR> <TD>db</TD> <TD>pesquisar na base /var/db</TD> <TR></TR></TBODY></TABLE>Após cada opção de pesquisa, podemos utilizar um comando da forma <BR>`[' ( `!'? STATUS `=' ACTION )+ `]'<BR>com : <UL> <LI>STATUS => "success" ou "notfound" ou "unavail" ou "tryagain" <LI>ACTION => "return" ou "continue" </LI></UL>Em função da libc utilizada, as pesquisas não são todas as mesmas. Por exemplo, as shadow passwords não são geradas com a libc5. Os serviços suportados sobre uma maquina utilizam uma libraria /lib/libnss_SERVICE.so.X Para mais informação sobre esse serviço, ver a pagina man de nsswitch.conf </LI></UL> O que diz respeito as shadow passwords via NIS, o seu suporte só é possível com a glibc2.x. É então necessário pensar a especificá-lo no ficheiro nsswitch.conf <H1>O protocolo NIS</H1> <P>Agora que o nosso cliente NIS esta completamente operacional, vamos ver como ele faz para recuperar as informações que ele necessita. </P> <P>Quando um cliente necessita uma informação numa map das YPs, ele começa por pesquisar no servidor YP. Para o encontrar, ele abre uma conexão TCP para o <FONT face="Courier New,Courier">ypbind</FONT> local. O cliente informe-o do domínio (falamos aqui do domínio NIS) onde ele pertence <FONT face="Courier New,Courier">ypbind</FONT> broadcast via a função RPC YPPROC_DOMAIN_NOACK. Os servidores NIS que servem esse domínio respondem com um ACK, os outros fazem de orelhas surdas. </P> <P><FONT face="Courier New,Courier">ypbind</FONT> reenvia ao cliente o resultado da pesquisa (falhanço ou sucesso) e, se ele a tiver, o endereço do primeiro servidor YP que lhe respondeu. O cliente pode agora fazer o pedido a esse servidor, composto do domínio, da map e da chave. </P> <P>Esse protocolo é relativamente lente porque ele utiliza as conexões RCP. Ainda mais, ele utiliza também muitas sockets. Para evitar essa situação, <FONT face="Courier New,Courier">ypbind</FONT> não espera que o cliente o contacta para encontrar os servidores. Na realidade ele guarda no ficheiro /var/yp/binding/<DOMAINENAME>.<VERSION> uma lista de servidor para cada domínio e verifica regularmente que eles funcionam correctamente. </P> <P></P> <H1>As yp-tools</H1> <P>Esta secção apresenta muito rapidamente algumas ferramentas do package yp-tools. Para saber mais, cada uma das instruções dispõem de uma página man muita detalhada ;-P</P> <P> <UL> <LI>domainname : reenvia (ou fixa segunda a opção) o nome do domínio NIS ; <LI>ypcat : mostra os valores de todas as chaves de uma map NIS ; <LI>ypmatch : mostra os valores de uma ou varias chaves de uma map NIS ; <LI>ypset : permite de definir a que servidor NIS <FONT face="Courier New,Courier">ypbind</FONT> tem de se conectar ; <LI>ypwhich : reenvia o nome do servidor NIS. Com o argumento -m seguido do nome do map, reenvia o nome da map master. <LI>yppoll : pega numa map em argumento e reenvia o nome do domínio e o servidor master. </LI></UL> <P></P> <H1>Algumas palavras sobre NIS+</H1> <P>Ao longo deste artigo, em nenhum momento abordamos uma variante de NIS, a saber NIS+. Numa rede, NIS causa enormes problemas em termo de segurança. Por exemplo, se o servidor NIS esta mal protegido e que uma pessoa mal intencionada descobre : <OL> <LI>o nome do domínio NIS <LI>o endereço IP de um cliente NIS </LI></OL>só lhe resta então fazer passar-se por a maquina com o IP do cliente e enviar um <FONT face="Courier New,Courier">ypcat passwd</FONT> para recuperar de uma forma descansada o ficheiro das palavras-chave :-( <P></P> <P>NIS+ ofereça uma camada suplementar de segurança integrando um protocolo de autentificação baseado sobre uma troca de chaves e suportando a numeração dos dados.</P> <P>Os dados são armazenados em tabelas, que são por elas colocadas em directorias diferentes. Cada coluna de uma tabela dispõem de um qualificativo definindo, por exemplo, se os dados são "case sensitive", em formato binário, etc ... </P> <P>A estrutura descrita permita simplesmente gerir os direitos de acceso sobre as directorias e as tabelas, mas também sobre as colunas das tabelas. Isso implica que podemos proibir o acesso a tabelas das palavras-chaves a todos os utilizadores que não são autenticados no servidor NIS+, mas autorizar a todos os utilizadores certificados a aceder a toda a tabela das palavras-chaves, excepto os campos "passwd". Só o proprietário do campo "passwd" podera vê-lo. </P> <P>Existem 4 niveis de direitos : <OL> <LI>Nobody (ninguém) : o utilizador não é autenticado ; <LI>Owner (proprietário) : o utilizador é autenticado e ele é o proprietario ; <LI>Group (groupe) : o utilizador é autenticado e ele esta no grupo para esse objecto ; <LI>World (mondo) : o utilizador é autenticado mas ele não é nem proprietatio, nem no grupo para esse objecto. </LI></OL> <P></P> <P>Nessa configuração, root é um utilizador como os outros ... enfim, quase ;-) Se ele não tiver as permissões adequadas, ele não pode mais ver as palavras-chaves dos outros utilizadores. Ele não poderá mais se autentificar como um outro utilizador ... mas, ele poderá sempre fazer descansadamente um <FONT face="Courier New,Courier">su</FONT> :) </P> <P>Os dados que transitam pela a rede não serão cryptados, a exepção das palavras-chaves : nenhuma palavra-chave transita em claro sobre a rede. </P> <P>NIS+ é uma ferramenta potente ... mas complicado a implementar. Como Thorsten Kuduk (ele trabalha sobre NIS, NIS+, NIS-HOWTO ... enfim, uma pessoa que sabe do que se trata ;-) escreve :<BR>"A escolhe emtre NIS e NIS+ é fácil de fazer : utiliza NIS quando não tem necessidade de segurança importante. NIS+ é bem mas problemático a administrar (particularmente do lado do servidor)" <BR></P> <H1>Conclusão</H1> <P>Agora sabemos como inserir uma nova maquina numa rede existente e tendo um servidor NIS. Veremos, no próximo episódio, como configurar o servidor e o seu funcionamento. </P> <HR> <H4>Footnotes</H4> <DL> <DT><A name=foot1></A>... var/yp/binding<SUP><A name=foot1 href="http://main.linuxfocus.org/Francais/July2001/article162.meta.shtml#foot1">1</A></SUP> <DD>As localizações dos ficheiros são raramente especificadas porque elas varient de uma distribuição a outra. Por exemplo, para ter um demónio <FONT face="Courier New,Courier">ypbind</FONT> inicializado ao arranque : /etc/init.d/nis, /sbin/init.d/ypclient, /etc/rc.d/init.d/ypbind, /etc/rc.local </DD></DL> <DL> <DT><A name=foot2></A>... broadcast<SUP><A name=foot2 href="http://main.linuxfocus.org/Francais/July2001/article162.meta.shtml#foot2">2</A></SUP> <DD>isso significa que a mensagem é emitida sobre todo a sub-rede sem destinatário especifico com um endereço do tipo X.Y.0.0 </DD></DL> <DL> <DT><A name=foot3></A>... netgroup<SUP><A name=foot3 href="http://main.linuxfocus.org/Francais/July2001/article162.meta.shtml#foot3">3</A></SUP> <DD>O ficheiro /etc/netgroup define os grupos compostos dos triplets (host, user, domain) servem para verificar as permissões quando se utiliza os comandos "a distancia" (remote logins, shells ou mount por exemplo). Ver a página man para mais pormenor. </DD></DL> <HR> <!-- 2pdaIgnoreStart --> <A NAME="talkback"> </a> <h2>Forma de respostas para este artigo</h2> Todo artigo tem sua própria página de respostas. Nesta página você pode enviar um comentário ou ver os comentários de outros leitores: <center> <table border="0" CELLSPACING="2" CELLPADDING="1"> <tr BGCOLOR="#C2C2C2"><td align=center> <table border="3" CELLSPACING="2" CELLPADDING="1"> <tr BGCOLOR="#C2C2C2"><td align=center> <A href="http://cgi.linuxfocus.org/cgi-bin/lftalkback?anum=162&lang=pt"><b> página de respostas </b></a> </td></tr></table> </td></tr></table> </center> <HR size="2" noshade> <!-- ARTICLE FOOT --> <CENTER><TABLE WIDTH="98%"> <TR><TD ALIGN=CENTER BGCOLOR="#9999AA" WIDTH="50%"> <A HREF="../../common/lfteam.html">Páginas Web mantidas pelo time de Editores LinuxFocus</A> <BR><FONT COLOR="#FFFFFF">© Frédéric Raynal, <a href="../../common/copy.html">FDL</a> <BR><a href="http://www.linuxfocus.org">LinuxFocus.org</a></FONT> <BR><a href="http://cgi.linuxfocus.org/cgi-bin/lfcomment?lang=pt&article=article162.shtml" target="_TOP">Clique aqui para reportar uma falha ou para enviar um comentário para LinuxFocus</A><BR></TD> <TD BGCOLOR="#9999AA"> <!-- TRANSLATION INFO --> <font size=2>Informação sobre tradução:</font> <TABLE> <tr><td><font size="2">fr --> -- : Frédéric Raynal <font size="1"><pappy(at)users.sourceforge.net></font></font></td></tr> <tr><td><font size="2">fr --> pt: Patrick Carpalhoso <carpalhoso(at)mail.telepac.pt></font></td></tr> </TABLE> </TD> </TR></TABLE></CENTER> <p><font size=1>2001-10-20, generated by lfparser version 2.18</font></p> <!-- 2pdaIgnoreStop --> </BODY> </HTML>