<< Back to man.lupaworld.com


[ anterior ] [ Conteúdo ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ próximo ]

Referência Debian
Capítulo 9 - Ajustando um sistema Debian


Este capítulo descreve apenas o básico da configuração do sistema através da interface baseada em linha de comando. Antes de ler este capítulo, você deve ler Dicas para instalação do Sistema Debian, Capítulo 3.

Se você está preocupado com a segurança então deve ler o Securing Debian Manual, que vem no pacote harden-doc.


9.1 Inicialização do sistema

O Debian usa o sistema de script de init System V. Veja O programa init, Seção 2.4.1 para uma introdução.


9.1.1 Personalizando os scripts init

A maneira mais fácil de controlar o comportamento de um script init é alterando atribuições de variáveis de ambiente no arquivo nomeado como no script init no diretório /etc/default. [32] Por exemplo, /etc/default/hotplug pode ser usado controlar como /etc/init.d/hotplug funciona. O arquivo /etc/default/rcS pode ser usado para personalizar padrões de tempo de inicialização para motd, sulogin, etc.

Se você não puder obter o comportamento desejado mudando essas variáveis, então você pode modificar os próprios scripts init: eles são todos arquivos de configuração.


9.1.2 Personalizando o log do sistema

O log do sistema pode ser configurado usando /etc/syslog.conf. Verifique o pacote colorize se quiser um programa para colorir os arquivos de log do sistema. Veja também syslogd(8) e syslog.conf(5).


9.1.3 Otimizando o hardware

Há umas poucas configurações de otimização do hardware que o Debian deixa aos cuidados do administrador do sistema.

Montar um sistema de arquivos com opção noatime também é muito eficaz para aumentar a velocidade de acesso ao arquivo. Consulte fstab(5) e mount(8).

Alguns hardwares podem ser ajustados diretamente pelo kernel Linux através do sistema de arquivos proc. Veja Ajustando o kernel pelo sistema de arquivos proc, Seção 7.3.

Há muitos utilitários de configuração de hardware específicos. Muitos deles se destinam a necessidades específicas do PC laptop. Eis alguns pacotes interessantes disponíveis no Debian:

Aqui, o ACPI é uma estrutura para o sistema de gerenciamento de energia mais nova que o APM.

Alguns desses pacotes necessitam de módulos especiais do kernel. Eles já são inclusos na última fonte do kernel em muitos casos. Se tiver problemas, você pode precisar aplicar o último patch para o kernel você mesmo.


9.2 Restringindo o acesso


9.2.1 Restringindo logins com PAM

PAM (Pluggable Authentication Modules) permite a você controlar como os usuários efetuam login.

     /etc/pam.d/*             # arquivos de controle de PAM
     /etc/pam.d/login         # arquivo de controle de PAM para login
     /etc/security/*          # parâmetros de módulo PAM
     /etc/securetty           # controla login de root pelo console (login)
     /etc/login.defs          # controla as definições para login (login)

Modifique o conteúdo de /etc/pam.d/login como a seguir, se você quiser terminais de console inseguros mas sem senha sob seu próprio risco.

     #auth       required   pam_unix.so nullok
     auth       required   pam_permit.so

Pode-se aplicar truques similares para o xdm, gdm, ... , para console X sem senha.

Por outro lado, instale cracklib2 e modifique /etc/pam.d/passwd como a seguir, se você desejar garantir uma boa segurança de senhas.

     password required       pam_cracklib.so retry=3 minlen=6 difok=3

Uma senha de login para uma única vez, para ativação de conta, também pode ajudar. Para isso, use o comando passwd com a opção -e passwd(1).

O número máximo de processos pode ser configurado com ulimit -u 1000 em um shell Bash ou com definições em /etc/security/limits.conf de PAM. Outros parâmetros como core podem ser configurados de maneira similar. O valor inicial de PATH pode ser ajustado em /etc/login.defs antes do script de início do shell.

A documentação para PAM está no pacote libpam-doc. O Guia dos Administradores de Sistema para Linux-PAM cobre a configuração de PAM, quais módulos estão disponíveis, etc. A documentação também inclui O Guia dos Desenvolvedores de Aplicação para Linux-PAM e O Guia dos Escritores de Módulos Linux-PAM.


9.2.2 "Por que o GNU su não suporta o grupo wheel"

Essa é a famosa frase do final da velha página info su de Richard M. Stallman. Não se preocupe: o su atual no Debian usa PAM, então pode-se restringir a habilidade de usar o su para qualquer grupo usando pam_wheel.so em /etc/pam.d/su. O seguinte configurará o grupo adm em um sistema Debian como um equivalente do grupo wheel do BSD e permitirá su sem uma senha para seus membros.

     # configuração anti-RMS em /etc/pam.d/su
     auth       required   pam_wheel.so group=adm
     
     # Membros Wheel capazes de usar su sem uma senha
     auth       sufficient pam_wheel.so trust group=adm

9.2.3 Propósitos de grupos padrões

Alguns grupos interessantes:

Para uma lista completa, veja a seção "FAQ" no Securing Debian Manual, que também pode ser encontrado como o pacote harden-doc no Woody. Além disso, o novo base-passwd (>3.4.6) contém uma lista oficial: /usr/share/doc/base-passwd/users-and-groups.html.


9.2.4 Trabalhando de forma mais segura – sudo

Meu uso do sudo é na maior parte uma proteção contra minha própria estupidez. Pessoalmente, eu acho que usar o sudo é uma alternativa melhor que sempre usar o sistema como root.

Instale o sudo e ative-o configurando as opções em /etc/sudoers. Verifique também o recurso do grupo sudo em /usr/share/doc/sudo/OPTIONS.

A configuração de exemplo disponibiliza aos membros do grupo "staff" o acesso a qualquer comando executado como root sob o sudo e também dá aos membros de "src" o acesso a executar comandos selecionados como root sob o sudo.

A vantagem do sudo é que ele requer apenas a senha de um usuário ordinário para efetuar o login, e a atividade é monitorada. Essa é uma bela maneira de dar alguma autoridade a um administrador junior. Por exemplo:

     $ sudo chown -R myself:mygrp .

É claro que se você sabe a senha de root (como muitos usuários domésticos sabem), qualquer comando pode ser executado como root a partir de uma conta de usuário:

     $ su -c "shutdown -h now"
     Password:

(Eu sei que deveria diminuir os privilégios sudo das contas admin. Mas como esse é meu servidor caseiro, ainda não me preocupei como isso.)

Se quiser um programa diferente que permita que usuários ordinários executem comandos com privilégios de root, veja o pacote super.


9.2.5 Restringindo acesso a serviços

O super-servidor de Internet, inetd, é iniciado na inicialização por /etc/rc2.d/S20inetd (para RUNLEVEL=2), que é um link simbólico para /etc/init.d/inetd. Essencialmente, o inetd permite a execução de um daemon para a chamada de vários outros, reduzindo a carga no sistema.

Sempre que um pedido de um serviço chega, seu protocolo e serviço são identificados procurando-os nas bases de dados em /etc/protocols e /etc/services. O inetd então procura um serviço de Internet normal na base de dados de /etc/inetd.conf , ou um serviço baseado em Sun-RPC em /etc/rpc.conf.

Para segurança do sistema, não esqueça de desabilitar serviços sem uso em /etc/inetd.conf. Os serviços Sun-RPC precisam ser ativados para NFS e outros programas baseados em RPC.

Algumas vezes, o inetd não inicia um servidor desejado diretamente, mas inicia o programa daemon wrapper de TCP/IP tcpd com o nome do servidor desejado como seu argumento em /etc/inetd.conf. Nesse caso, o tcpd executa o programa servidor apropriado depois de registrar o pedido e fazer algumas verificações adicionais usando /etc/hosts.deny e /etc/hosts.allow.

Se você tiver problemas com acesso remoto em um sistema Debian recente, comente "ALL: PARANOID" em /etc/hosts.deny se ele existir.

Para mais detalhes, veja inetd(8), inetd.conf(5), protocols(5), services(5), tcpd(8), hosts_access(5), e hosts_options(5).

Para mais informação sobre Sun-RPC, veja rpcinfo(8) , portmap(8), e /usr/share/doc/portmap/portmapper.txt.gz.


9.2.6 Centralizando a autenticação – LDAP

Use Lightweight Directory Access Protocol (LDAP)(Protocolo de Acesso a Diretório Leve) Referências:


9.3 Gravadores de CD

Os gravadores de CD com interfaces ATAPI/IDE recentemente se tornaram uma opção muito popular. É uma boa mídia para backup do sistema e arquivamentos para o usuário doméstico que precise de capacidade < 640 MB. Para informação de maior autoridade, veja o CD-Writing-HOWTO do LDP.


9.3.1 Introdução

Primeiro, qualquer interrupção dos dados enviados para o gravador de CDs causará danos irrecuperáveis ao CD. Obtenha um gravador de CD com o maior buffer possível. Se dinheiro não for problema, não se aborreça com um ATAPI/IDE, simplesmente pegue uma versão SCSI. Se você tiver escolha sobre em qual interface IDE conectar, use a que estiver no barramento PCI (isto é, na placa mãe) ao invés de uma no barramento ISA (uma placa SB16, etc.).

Quando um gravador de CDs está conectado à IDE, precisa usar o driver IDE-SCSI ao invés de um driver de CD IDE ordinário para kernels Linux 2.2 e 2.4. Além disso, o driver SCSI genérico precisa ser ativado. Há duas possíveis maneiras de se fazer isso, considerando um kernel distribuído com distribuições atuais (como de março de 2001).


9.3.2 Alternativa 1: módulos + lilo

Se você estiver usando um kernel do Debian, adicione a seguinte linha ao /etc/lilo.conf . Se forem usadas várias opções, liste-as separadas por espaços:

     append="hdx=ide-scsi ignore=hdx"

Aqui a localização do gravador de CDs, que é acessado através do driver ide-scsi, é indicada por hdx, onde x representa um dos seguintes:

     hda          para o mestre na primeira porta IDE
     hdb          para o escravo na primeira porta IDE
     hdc          para o mestre na segunda porta IDE
     hdd          para o escravo na segunda porta IDE
     hde ... hdh  para uma unidade em uma porta IDE externa ou porta IDE ATA66/100

Digite os seguintes comandos como root para ativar depois de acabar toda a configuração:

     # lilo
     # shutdown -h now

9.3.3 Alternativa 2: recompilar o kernel

O Debian usa o make-kpkg para criar um kernel. Use o novo --append_to_version com o make-kpkg para criar várias imagens de kernel. Veja O kernel Linux no Debian, Capítulo 7.

Use a seguinte configuração através do make menuconfig:


9.3.4 Passos posteriores à configuração

O suporte do kernel para o gravador de CDs pode ser ativado durante a inicialização com o seguinte:

     # echo ide-scsi >>/etc/modules
     # echo sg       >>/etc/modules
     # cd /dev; ln -sf scd0 cdrom

A ativação manual pode ser feita com:

     # modprobe ide-scsi
     # modprobe sg

Depois de reinicializar, você pode verificar a instalação com:

     $ dmesg|less
     # apt-get install cdrecord
     # cdrecord -scanbus

[Por Warren Dodge] Algumas vezes podem ocorrer conflitos entre ide-scsi e ide-cd se houver CD-ROM e CD-R/RW no sistema. Tente adicionar a seguinte linha ao seu /etc/modutils/aliases, executando update-modules, e reinicialize.

     pre-install      ide-scsi      modprobe ide-cd

Isso faz com que o driver IDE seja carregado antes do ide-scsi. O driver IDE ide-cd toma o controle do ATAPI CD-ROM — qualquer coisa que não lhe tenha sido dito para ignorar. Isso deixa apenas os dispositivos ignorados para o ide-scsi controlar.


9.3.5 Arquivo imagem de CD (inicializável)

Para criar um CD-ROM de arquivos sob um diretório-alvo/ como cd-image.raw (inicializável, formato Joliet TRANS.TBL habilitado; se não inicializável, retire as opções -b e -c), insira um disco de inicialização na unidade de disquetes e

     # dd if=/dev/fd0 diretório-alvo/boot.img 
     # mkisofs -r -V volume_id -b boot.img -c bootcatalog -J -T \
             -o cd-image.raw diretório-alvo/

Um hack divertido é fazer um CD-ROM de DOS inicializável. Se um disquete de inicialização ordinário de DOS estiver no boot.img acima, o CD-ROM inicializará como se um disquete de DOS estivesse na primeira unidade de disquetes (A:). Fazer isso com freeDOS pode ser mais interessante.

Esse arquivo de imagem de CD pode ser inspecionado montando-o no dispositivo loop.

     # mount -t iso9660 -o ro,loop cd-image.raw /cdrom
     # cd /cdrom
     # mc
     # umount /cdrom

9.3.6 Gravar CDs (R, RW):

Primeiro teste com (considerando velocidade dupla)

     # nice --10 cdrecord -dummy speed=2 dev=0,0 disk.img

Então se for tudo bem, grave no CD-R com

     # nice --10 cdrecord -v -eject speed=2 dev=0,0 disk.img

Ou grave em um disco CD-RW com

     # nice --10 cdrecord -v -eject blank=fast speed=2 dev=0,0 disk.img

Algumas unidades de CD-RW funcionam melhor com

     # nice --10 cdrecord -v blank=all speed=2 dev=0,0 disk.img

seguido de

     # nice --10 cdrecord -v -eject speed=2 dev=0,0 disk.img

São necessários esses dois passos para prevenir que timeouts de SCSI durante o apagamento interfiram no passo da gravação. O valor do argumento para o nice pode necessitar de alguns ajustes.


9.3.7 Fazer um arquivo imagem de um CD

Alguns CD-Rs e CDs comerciais têm setores ruins no fim que tornam impossível sua cópia através do dd (o CD do Windows 98 é um deles). O pacote cdrecord vem com o comando readcd. Use-o para copiar o conteúdo de qualquer CD para um arquivo imagem. Se for um disco de dados, monte-o e execute df para ver seu tamanho real. Divida o número mostrado em blocos (1 bloco = 1024 bytes) por 2 para obter o número de setores do CD real (1 setor = 2048 bytes). Execute o readcd com opções e use essa imagem de disco para gravar o CD-R/RW.

     # readcd dev=target,lun,scsibusno # selecione função 11

Aqui, ajuste os 3 parâmetros para 0 para muitos casos. Geralmente o número de setores dados pelo readcd é excessivo! Use o número acima a partir de um mount real para melhores resultados.

Deve-se notar que o uso do dd tem alguns problemas se usado no CD-ROM. A primeira execução do comando dd pode causar uma mensagem de erro e pode resultar em uma imagem de disco mais curta com a perda do final. A segunda execução do comando dd pode resultar em uma imagem de disco maior com lixo anexo ao final em alguns sistemas se o tamanho do dado não for especificado. Somente a segunda execução do comando dd com o tamanho de dado correto especificado sem ejetar o CD depois de mensagem de erro parece evitar esses problemas. Se o tamanho da imagem mostrado pelo df for 46301184 blocos, use o seguinte comando duas vezes para obter a imagem correta (esta é minha informação empírica):

     # dd if=/dev/cdrom of=cd.img bs=2048 count=$((46301184/2))

9.3.8 Imagens de CD do Debian

Para obter as últimas informações sobre os CDs do Debian CDs, visite a página do Debian CD.

Se você tiver uma conexão rápida com a Internet, considere instalar pela rede usando:

Se você não tiver uma conexão rápida com a Internet, pense em comprar os CDs de vendedores de CD.

Por favor, não jogue fora largura de banda baixando imagens de CD padrão a menos que seja um testador de imagem de CD (mesmo com o novo método jigdo).

Uma imagem de CD notável é o KNOPPIX - Live Linux Filesystem On CD. Esse CD inicializa em um sistema Debian funcional sem instalar-se no disco rígido.


9.3.9 Fazer cópia de segurança do sistema em CD-R

Para arquivos de configuração chaves e arquivos de dados para o CD-R, use o script de backup de exemplo backup. Veja também Copiar e arquivar um subdiretório inteiro, Seção 8.3 e Backups diferenciais e sincronização de dados, Seção 8.4.


9.3.10 Copiar um CD de músicas para CD-R

Não testado por mim:

     # apt-get install cdrecord cdparanoia
     # cdparanoia -s -B
     # cdrecord dev=0,0,0 speed=2 -v -dao -eject defpregap=1 -audio *.wav

ou,

     # apt-get install cdrdao #disk at once
     # cdrdao read-cd --device /dev/cdrom --paranoia-mode 3 my_cd # lê o cd
     # cdrdao write --device /dev/cdrom --speed 8 my_cd    # grava um CD novo

O cdrdao faz uma cópia real (sem intervalos, etc...).


9.4 X

O Sistema X Window é provido pelo XFree86. Há duas versões principais do servidor X disponíveis no sistema Debian: XFree86 Versão 3.3 (XF3) e XFree86 Versão séries 4.x (XF4), ambas baseadas em especificações X11R6 pelo X.Org.

Para informações básicas do X, refira-se a X(7), ao XWindow-User-HOWTO do LDP, e ao Mini-HOWTO de Aplicações remotas no X. Para um guia de usuário específico do Debian, leia o arquivo /usr/share/doc/xfree86-common/FAQ.gz fornecido no pacote xfree86-common. Esse contém uma revisão interessante e de autoridade sobre os problemas de mapeamento de teclado, feita por Branden Robinson.

O servidor X, Seção 9.4.3
um programa em um sistema local que mostra uma janela X e/ou desktop em um monitor do usuário (CRT, LCD) e aceita entradas de teclado e mouse.
Clientes X, Seção 9.4.4
um programa em um sistema (local ou remoto) que executa uma aplicação compatível com X.

Isso reverte o uso ordinário de "servidor" e "cliente" em outros contextos.

Há várias maneiras de se fazer o "servidor X" (lado do display) aceitar conexões remotas de um "cliente X" (lado da aplicação):

Todos os métodos de conexão remota, exceto o ssh, requerem conexão TCP/IP habilitada no servidor X. Veja Usando o X sobre TCP/IP, Seção 9.4.6.


9.4.1 Pacotes do X

Existem alguns (meta)pacotes disponibilizados para facilitar a instalação do sistema X no Woody.

x-window-system-core
Este metapacote provê os componentes essenciais para uma estação de trabalho executando o Sistema X Window. Ele provê as bibliotecas X, um servidor X (xserver-xfree86), um conjunto de fontes, e um grupo de clientes X básicos e utilidades.
x-window-system
Este metapacote provê praticamente todos os componentes do Sistema X Window desenvolvidos pelo Projeto XFree86, assim como um conjunto de programas acessórios historicamente populares. (Notavelmete, ele depende dos pacotes x-window-system-core, twm, e xdm, isto é, não é preciso instalar o x-window-system-core se você instalar esse.)
xserver-common-v3
Arquivos e utilidades comuns aos servidores X XFree86 3.x (XF3)
xserver-*
Pacotes de servidores XF3 adicionais para suportar hardware não suportado pelo novo servidor XF4 (xserver-xfree86) por qualquer razão que seja. Algumas antigas placas ATI mach64 não são suportadas no XF4, outras placas travam na versão XF4 do Woody, etc. (Para saber os pacotes disponíveis, use apt-cache search xserver-|less. Todos os servidores XF3 dependem do pacote xserver-common-v3.)

Em muitos casos, o pacote a instalar é o x-window-system. (Se você quiser login pelo console, desabilite o xdm como descrito em "Deixe-me desabilitar o X na inicialização !", Seção 8.1.4.)


9.4.2 Detecção de hardware para o X

Para habilitar detecção de hardware durante o estágio de configuração do X, instale os seguintes pacotes antes de instalar o sistema X:


9.4.3 O servidor X

Veja XFree86(1x) para obter informações sobre o servidor X.

Para chamar o servidor X a partir de um console local:

     $ startx -- :<display> vtXX
     por exemplo:
     $ startx -- :1 vt8 -bpp 16
     ... inicia no vt8 conectado a localhost:1 com modo 16 bpp

Os argumentos dados depois de -- são para o servidor X.

Note que, ao usar um script ~/.xserverrc para personalizar a inicialização do servidor X, certifique-se de fazer exec para o servidor X real. Se não fizer isso, o servidor X pode demorar a iniciar e sair. Por exemplo:

     #!/bin/sh
     exec /usr/bin/X11/X -dpi 100 -nolisten tcp

9.4.3.1 Configurando o servidor X (versão 4)

Para (re-)configurar um servidor XF4,

     # dpkg-reconfigure --priority=low xserver-common
     # dpkg-reconfigure --priority=low xserver-xfree86

gerará o arquivo /etc/X11/XF86Config-4 e configurará o X usando o script dexconf.


9.4.3.2 Configurando o servidor X (versão 3)

Para (re-)configurar um servidor XF3, por exemplo, para ATI mach64,

     # dpkg-reconfigure --priority=low xserver-common-v3
     # dpkg-reconfigure --priority=low xserver-mach64

gerará o arquivo /etc/X11/XF86Config e configurará o X usando o script xf86config-v3.


9.4.3.3 Configurando o servidor X manualmente

No Woody, para adicionar personalizações do usuário ao arquivo /etc/X11/XF86Config-4, não edite o arquivo de configuração entre o texto:

     ### BEGIN DEBCONF SECTION
     [snip]
     ### END DEBCONF SECTION

Ao invés disso, adicione as personalizações antes do texto. Por exemplo, para usar um dispositivo de vídeo personalizado, adicione alguma coisa modificando o seguinte texto no início do arquivo:

     Section "Device"
       Identifier        "Custom Device"
       Driver            "ati"
       Option            "NoAccel"
     EndSection
     
     Section "Screen"
       Identifier  "Custom Screen"
       Device      "Custom Device"
       Monitor     "Generic Monitor"
       DefaultDepth 24
       Subsection "Display"
         Depth       8
         Modes       "1280x960" "1152x864" "1024x768" "800x600" "640x480"
       EndSubsection
       Subsection "Display"
         Depth       16
         Modes       "1280x960" "1152x864" "1024x768" "800x600" "640x480"
       EndSubsection
       Subsection "Display"
         Depth       24
         Modes       "1280x960" "1152x864" "1024x768" "800x600" "640x480"
       EndSubsection
     EndSection
     
     Section "ServerLayout"
         Identifier        "Custom"
         Screen            "Custom Screen"
         InputDevice       "Generic Keyboard" "CoreKeyboard"
         InputDevice       "Configured Mouse" "CorePointer"
     EndSection

No Sarge (testing no momento em que escrevo), se você quiser manter as personalizações do usuário no arquivo /etc/X11/XF86Config ao atualizar, execute os seguintes comandos como root:

      # cp /etc/X11/XF86Config-4 /etc/X11/XF86Config-4.custom
      # md5sum /etc/X11/XF86Config-4 > /var/lib/xfree86/XF86Config-4.md5sum
      # dpkg-reconfigure xserver-xfree86

Para obter fontes menos feias, você precisa editar o /etc/X11/XF86Config-4 como descrito em Fontes TrueType no X, Seção 9.4.13.

Por favor, verifique também as outras partes de sua configuração do X. Ajustes ruins de monitor podem ser uma dor de cabeça até pior que fontes ruins, então certifique-se de que sua taxa de atualização é tão alta quanto seu monitor pode suportar (85 Hz é ótimo, 75 Hz está bom, 60 Hz é horrível.).


9.4.4 Clientes X

Muitos programas clientes X podem ser iniciados com um comando como esse:

     cliente $ xterm -geometry 80x24+30+200 -fn 6x10 -display nomemáquina:0 &

Aqui, os argumentos opcionais da linha de comando significam:

O nomedisplay padrão para o programa cliente X (lado da aplicação) pode ser definido pela variável de ambiente DISPLAY. Por exemplo, antes de executar um programa cliente X, a execução de um dos seguintes comandos faz isso:

     $ export DISPLAY=:0 
             # O padrão, máquina local usando a primeira tela do X
     $ export DISPLAY=nomemaquina.dominio.nome:0.2
     $ export DISPLAY=localhost:0

Sua inicialização pode ser personalizada em ~/.xinitrc. Por exemplo:

     xrdb -load $HOME/.Xresources
     xsetroot -solid gray &
     xclock -g 50x50-0+0 -bw 0 &
     xload -g 50x50-50+0 -bw 0 &
     xterm -g 80x24+0+0 &
     xterm -g 80x24+0-0 &
     twm

Como descrito em Sessões X personalizadas, Seção 9.4.5.1, isso substitui tudo que a execução normal de Xsession faz ao iniciar a partir de startx. Use o ~/.xsession ao invés disso e use essa alternativa apenas como último recurso. Veja xsetroot(1x), xset(1x) e Recursos do X, Seção 9.4.10.


9.4.5 Sessões X

Uma sessão X (servidor X + cliente X) pode ser iniciada por:

O console pode ser disponibilizado como em "Deixe-me desabilitar o X na inicialização !", Seção 8.1.4.


9.4.5.1 Sessões X personalizadas

O script de inicialização padrão /etc/X11/Xsession é efetivamente uma combinação de /etc/X11/Xsession.d/50xfree86-common_determine-startup e /etc/X11/Xsession.d/99xfree86-common_start.

A execução de /etc/X11/Xsession é um pouco afetada por /etc/X11/Xsession.options e é essencialmente uma execução de um programa que foi encontrado primeiro na seguinte ordem com o comando exec :

  1. ~/.xsession ou ~/.Xsession, se for definido.
  2. /usr/bin/x-session-manager, se for definido.
  3. /usr/bin/x-window-manager, se for definido.
  4. /usr/bin/x-terminal-emulator, se for definido.

O significado exato desses comandos é determinado pelo sistema de alternativas do Debian descrito em Comandos alternativos, Seção 6.5.3. Por exemplo:

     # update-alternatives --config x-session-manager
     ... ou
     # update-alternatives --config x-window-manager

Para tornar qualquer gerenciador de janelas do X como padrão enquanto se mantém os gerenciadores de sessão do GNOME e KDE instalados, substitua o /etc/X11/Xsession.d/50xfree86-common_determine-startup com o anexo no segundo relatório de bug em http://bugs.debian.org/168347 (Eu espero que ele seja incluído logo.) e edite o /etc/X11/Xsession.options como a seguir para desabilitar o gerenciador de sessão X:

     # /etc/X11/Xsession.options
     #
     # opções de configuração para /etc/X11/Xsession
     # Veja Xsession.options(5) para uma explicação das opções disponíveis.
     # Padrão habilitado
     allow-failsafe
     allow-user-resources
     allow-user-xsession
     use-ssh-agent
     # Padrão desabilitado (habilite-os descomentando)
     do-not-use-x-session-manager
     #do-not-use-x-window-manager

Sem a modificação no sistema mencionada acima, gnome-session e kdebase são os pacotes contendo esses gerenciadores de sessão X. Sua remoção permite que o gerenciador de janelas X seja um padrão. (Yack, alguma idéia melhor?)

Em um sistema onde /etc/X11/Xsession.options contém uma linha allow-user-xsession sem caracteres precedendo, qualquer usuário que defina um ~/.xsession ou ~/.Xsession poderá personalizar a ação de /etc/X11/Xsession.

O último comando no arquivo ~/.xsession deve usar a forma exec algum-gerenciador-de-janelas/sessão para iniciar seu gerenciador de janelas/sessão X.

Um bom exemplo de um script ~/.xsession é dado em /usr/share/doc/xfree86-common/examples/xsession.gz.

Eu uso isso para definir o gerenciador de janelas acesso à tela e idioma de suporte para cada conta de usuário. Veja Iniciando uma sessão X para um usuário, Seção 9.4.5.2, Obtendo root no X, Seção 9.4.12, e Exemplo para um sistema X window multi-idiomas, Seção 9.7.9.

Se você desejar ter vários programas clientes X iniciados automaticamente, veja os exemplos Clientes X, Seção 9.4.4 e invoque-os a partir do arquivo ~/.xsession ao invés do arquivo ~/.xinitrc.

Recursos X específicos do usuário podem ser definidos em ~/.Xresources. Veja Recursos do X, Seção 9.4.10.

Mapas de teclado e funções dos botões do apontador personalizados para o usuário no X também podem ser especificados no script de inicialização do usuário. Veja Mapas de teclado e funções de botões do apontador no X, Seção 9.4.11.


9.4.5.2 Iniciando uma sessão X para um usuário

Seguindo o princípio descrito em Sessões X personalizadas, Seção 9.4.5.1, um gerenciador de sessão/janelas X específico do usuário pode ser ativado instalando o pacote indicado e definindo o conteúdo no final do arquivo ~/.xsession como a seguir. (Eu gosto do blackbox/fluxbox por seu estilo simples e pela alta velocidade.):

Veja Gerenciadores de Janela para o X.


9.4.5.3 Configurando KDE e GNOME

Para configurar um ambiente KDE ou GNOME completo, os seguintes metapacotes são úteis:

A instalação desses pacotes com ferramentas que manipulam recommends, como o dselect e o aptitude, lhe dá melhores opções de software que simplesmente instalá-los com o apt-get.

Se você quiser login de console, certifique-se de desabilitar gerenciadores de sessão como kdm, gdm, e wdm, que podem ser inseridos pelas dependências, como descrito em "Deixe-me desabilitar o X na inicialização !", Seção 8.1.4.

Se você quiser ter o GNOME como padrão do sistema sobre o KDE, não esqueça de configurar x-session-manager como em Comandos alternativos, Seção 6.5.3.


9.4.6 Usando o X sobre TCP/IP

Devido a conexão com soquete TCP/IP remota sem encriptação ser sujeita a um "eavesdropping attack", a configuração padrão para o X em versões recentes do Debian desabilita o soquete TCP/IP. Pense em usar o ssh para uma conexão remota do X (veja Conectando a um servidor X remoto – ssh, Seção 9.4.8).

O método descrito aqui não é encorajado a menos que se esteja em um ambiente muito seguro atrás de um bom sistema de firewall com apenas usuários conhecidos presentes. Use o seguinte comando para verificar a configuração atual de seu servidor X para o soquete TCP/IP:

     # find /etc/X11 -type f -print0 | xargs -0 grep nolisten
     /etc/X11/xinit/xserverrc:exec /usr/bin/X11/X -dpi 100 -nolisten tcp

Remova -nolisten para restaurar escuta TCP/IP no servidor X.


9.4.7 Conectando a um servidor X remoto – xhost

O xhost permite acesso baseado em nomes de máquinas. Isso é muito inseguro. O seguinte desabilitará a verificação de máquina e permitirá conexões de qualquer lugar se uma conexão com soquete TCP/IP for permitida (veja Usando o X sobre TCP/IP, Seção 9.4.6):

     $ xhost +

Você pode reabilitar a verificação de máquina com:

     $ xhost -

O xhost não distingue entre diferentes usuários na máquina remota. Além disso, nomes de máquinas (endereços) podem ser falsificados.

Esses método precisa ser evitado mesmo com o critério de máquina mais restritivo se você estiver em uma rede não confiável (por exemplo com uma conexão de acesso discado PPP à Internet). Veja xhost(1x).


9.4.8 Conectando a um servidor X remoto – ssh

O uso de ssh permite uma conexão segura a partir de um servidor X local para um servidor de aplicações remoto.

Esse método permite a exibição da saída de um cliente X remoto como se ele estivesse conectado localmente através de um soquete de domínio UNIX local.


9.4.9 O emulador de terminal X – xterm

Aprenda tudo sobre o xterm em http://dickey.his.com/xterm/xterm.faq.html.


9.4.10 Recursos do X

Muitos programas X antigos, como o xterm, usam a base de dados de recursos do X para configurar sua aparência. O arquivo ~/.Xresources é usado para armazenar as especificações dos recursos do usuário. Esse arquivo é carregado automaticamente nos recursos padrões do X ao fazer o login. Os padrões gerais do sistema para os recursos do X são armazenados em /etc/X11/Xresources/* e os padrões de aplicações deles são armazenados em /etc/X11/app-defaults/*. Use esses ajustes como pontos de partida.

Aqui estão algumas configurações úteis para adicionar ao seu arquivo ~/.Xresources :

     ! Define a fonte para uma mais legível 9x15
     XTerm*font: 9x15
     
     ! Exibe uma barra de rolagem
     XTerm*scrollBar: true
     
     ! Define o tamanho do buffer para 1000 linhas
     XTerm*saveLines: 1000
     
     ! Tela grande do kterm
     KTerm*VT100*fontList: -*-fixed-medium-r-normal--24-*,\
      -*-gothic-medium-r-normal--24-*,\
      -*-mincho-medium-r-normal--24-*

Para fazer com que essas configurações tenham efeito imediato, carregue-as na base de dados com o comando:

     xrdb -merge ~/.Xresources

Veja xrdb(1x).


9.4.11 Mapas de teclado e funções de botões do apontador no X

O programa xmodmap é usado para editar e exibir o mapa modificador do teclado e a tabela de mapa do teclado que são usados pelas aplicações clientes para converter códigos de tecla de eventos em símbolos de tecla no X.

     $ xmodmap -pm 
      ... exibe o mapa modificador atual
     $ xmodmap -pk | pager
      ... exibe a tabela do mapa atual
     $ xmodmap -e "pointer = 3 2 1" # define mouse para a mão esquerda
     $ xmodmap ~/.xmodmaprc # configura o teclado como em ~/.xmodmaprc

Ele geralmente é executado a partir do script de inicialização de sessão do usuário, ~/.xsession.

Para obter o código de tecla (keycode), execute xev no X e pressione teclas. Para obter o significado do símbolo de tecla (keysym), procure na definição MACRO no arquivo /usr/include/X11/keysymdef.h. Todas as expressões #define nesse arquivo são nomeadas como XK_ antecedendo os nomes de símbolo de tecla.

Veja xmodmap(1x).


9.4.12 Obtendo root no X

Se um programa GUI precisar ser executado com privilégios de root, use os seguintes procedimentos para exibir a saída do programa em um servidor X do usuário. Nunca inicie um servidor X diretamente da conta root para evitar possíveis riscos de segurança.

Inicie o servidor X como um usuário normal e abra um console xterm. Então:

     $ XAUTHORITY=$HOME/.Xauthority
     $ export XAUTHORITY
     $ su root
     Password:*****
     # printtool &

Ao usar esse truque para su para um usuário não root, assegure-se de que ~/.Xauthority pode ser lido por grupo para esse usuário não root.

Para automatizar essa seqüência de comandos, crie um arquivo ~/.xsession a partir da conta do usuário, contendo as seguintes linhas:

     # Isso faz o X funcionar quando uso su para conta root.
     if [ -z "$XAUTHORITY" ]; then
             XAUTHORITY=$HOME/.Xauthority
             export XAUTHORITY
     fi
     unset XSTARTUP
     # Se for desejado um gerenciador de janelas/sessão específico, descomente
     # a linha seguinte e edite-a para preencher suas necessidades.
     #XSTARTUP=/usr/bin/blackbox
     # Isso inicia programa gerenciador de sessão/janela x
     if [ -z "$XSTARTUP" ]; then
       if [ -x /usr/bin/x-session-manager ]; then
         XSTARTUP=x-session-manager
       elif [ -x /usr/bin/x-window-manager ]; then
         XSTARTUP=x-window-manager
       elif [ -x /usr/bin/x-terminal-emulator ]; then
         XSTARTUP=x-terminal-emulator
       fi
     fi
     # executa gerenciador de janela/sessão X auto selecionado
     exec $XSTARTUP

Então execute su (não su -) em uma janela xterm do usuário. Agora programas GUI iniciados a partir desse xterm podem exibir saída na janela desse usuário enquanto é executado com privilégio de root. Esse truque funciona sempre que o /etc/X11/Xsession padrão é executado. Se um usuário definir sua personalização usando ~/.xinit ou ~/.xsession, a variável de ambiente XAUTHORITY acima mencionada também precisa ser definida similarmente naqueles scripts.

Alternativamente, o sudo pode ser usado para automatizar a seqüência de comando:

     $ sudo xterm
     ... ou
     $ sudo -H -s

Aqui /root/.bashrc deve conter:

     if [ $SUDO_USER ]; then
         sudo -H -u $SUDO_USER xauth extract - $DISPLAY | xauth merge -
     fi

Isso funciona bem mesmo com o diretório home do usuário em uma montagem NFS, porque root não lê o arquivo .Xauthority.

Há também vários pacotes especializados para esse propósito: kdesu, gksu, gksudo, gnome-sudo, e xsu. Alguns outros métodos podem ser usados para se obter resultados similares: criar um link simbólico a partir de /root/.Xauthority para o do usuário correspondente; uso do script sux; ou colocar "xauth merge ~USER_RUNNING_X/.Xauthority" no script de inicialização root.

Veja mais na lista de mensagens debian-devel.


9.4.13 Fontes TrueType no X

O xfs padrão do XFree86-4 funciona bem com fontes TrueType. Se você estiver usando o XFree86-3, precisa instalar um servidor de fontes de terceiros como o xfs-xtt.

Você só precisa ter certeza de que as aplicações com as quais quer usar as fontes TrueType foram ligadas usando libXft ou libfreetype (provavelmente você nem precisa preocupar-se com isso se estiver usando .debs pré-compilados).

Primeiro configure a estrutura de suporte a fontes:

Então instale pacotes de fontes DFSG:

Já que fontes Livres são algumas vezes limitadas, a instalação ou compartilhamento de algumas fontes comerciais TrueType é uma opção para usuários Debian. Para facilitar esse processo para o usuário, alguns pacotes de conveniência foram criados:

Você terá uma seleção realmente boa de fontes TrueType sob o custo de contaminar seu sistema Livre com fontes não-Livres.

Todas esses pacotes de fontes no Debian devem funcionar sem nenhum esforço e aparecer disponíveis para todos os programas X que usam o sistema de fontes "principal" regular. Isso inclui coisas como Xterm, Emacs e muitas outras aplicações não-KDE e não-Gnome.

Agora, execute o xfontsel e selecione quaisquer fontes TrueType no menu fndry, você deve ser capaz de ver muitas entradas não acinzentadas no menu "fmly".

Para o KDE2.2 e GNOME1.4 (com libgdkxft0, que é um hack para fazer o GTK 1.2 renderizar fontes com anti-alias), você precisa configurar Xft1, também. Xft1 está altamente desatualizado, e basicamente só é usado pelo GNOME1.4 e KDE2.2. Edite o arquivo /etc/X11/XftConfig e adicione uma linha como

         dir "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"

antes das outras linhas dir. [35] Para o GNOME2 e KDE3 (pós edição do Sarge), você precisa configurar o fontconfig que o Xft2 usa para encontrar fontes. [36] Você não deve precisar instalar nada extra para isso, já que todos os pacotes que usam fontconfig já irão Depender dele (indiretamente).

Primeiro, veja em /etc/fonts/fonts.conf. Deve haver uma linha como a abaixo. Se não houver, abra o /etc/fonts/local.conf e adicione essa

         <dir>/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType</dir>

logo abaixo da linha <fontconfig>.

O Fontconfig deve pegá-las imediatamente, e "fc-list" deve listar suas novas fontes. Outro recurso elegante do fontconfig é que você pode simplesmente colocar fontes em ~./fonts/ e todos os seus programas que usam fontconfig terão acesso a elas imediatamente.

Se você instalar manualmente um novo conjunto de fontes TrueType enquanto estiver no X sem usar pacote Debian, execute

     # xset fp rehash

para fazer com que o XFree86 olhe os conteúdos daquele diretório novamente e pegue as novas.


9.4.14 Navegadores Web no X

Há alguns pacotes de navegadores Web com capacidades de exibição gráfica desde a versão Woody:

A versão do mozilla precisa combinar com a versão que o galeon requer. Apesar deles diferirem na interface para o usuário, esses dois programas compartilham o mecanismo de processamento HTML Gecko.

Os plug-ins para navegadores como mozilla e galeon podem ser habilitados instalando os "*.so" manualmente no diretório de plug-in e reiniciando os navegadores.

Recursos plug-in:


9.5 SSH

O SSH (Secure SHell) é a maneira segura de conectar através da Internet. Uma versão livre de SSH chamada OpenSSH está disponível como o pacote ssh no Debian.


9.5.1 Básico do SSH

Primeiro instale o servidor e o cliente OpenSSH.

     # apt-get update && apt-get install ssh

É necessária a entrada non-US no arquivo /etc/apt/source.list . O arquivo /etc/ssh/sshd_not_to_be_run não pode estar presente se desejar-se executar o servidor OpenSSH.

O SSH tem dois protocolos de autenticação:

Tenha cuidado com essas diferenças se você estiver migrando para o Woody ou estiver usando um sistema não-Debian.

Veja /usr/share/doc/ssh/README.Debian.gz, ssh(1), sshd(8), ssh-agent(1), e ssh-keygen(1) para detalhes.

Os arquivos de configuração chaves são os seguintes:

O seguinte iniciará uma conexão ssh a partir de um cliente.

     $ ssh nomeusuario@nomemaquina.dominio.ext
     $ ssh -1 nomeusuario@nomemaquina.dominio.ext # Força SSH versão 1
     $ ssh -1 -o RSAAuthentication=no -l nomeusuario foo.host
         # força senha em SSH1
     $ ssh -o PreferredAuthentications=password -l nomeusuario foo.host
         # força senha em SSH2

Para o usuário, o ssh funciona como um telnet mais esperto e mais seguro (não vai explodir com ^]).


9.5.2 Redirecionamento de porta para tunelamento SMTP/POP3

Para estabelecer um pipe para conectar à porta 25 de um servidor-remoto a partir da porta 4025 do sistema local, e para a porta 110 do servidor-remoto a partir da porta 4110 do sistema local através do ssh, execute na máquina local:

     # ssh -q -L 4025:servidor-remoto:25 4110:servidor-remoto:110 \
                nomeusuario@servidor-remoto

Essa é uma forma segura de fazer conexões com servidores SMTP/POP3 através da Internet. Ajuste a entrada AllowTcpForwarding para yes no arquivo /etc/ssh/sshd_config da máquina remota.


9.5.3 Conectando com menos senhas – RSA

Pode-se evitar de ter que lembrar de uma senha para cada sistema remoto usando RSAAuthentication (protocolo SSH1) ou PubkeyAuthentication (protocolo SSH2).

No sistema remoto, defina as respectivas entradas, "RSAAuthentication yes" ou "PubkeyAuthentication yes", em /etc/ssh/sshd_config.

Então gere chaves de autenticação localmente e instale a chave pública no sistema remoto:

     $ ssh-keygen          # RSAAuthentication: chave RSA1 para SSH1
     $ cat .ssh/identity.pub | ssh usuario1@remoto \
             "cat - >>.ssh/authorized_keys"
     ...
     $ ssh-keygen -t rsa   # PubkeyAuthentication: chave RSA para SSH2
     $ cat .ssh/id_rsa.pub | ssh usuario1@remoto \
             "cat - >>.ssh/authorized_keys"
     ...
     $ ssh-keygen -t dsa   # PubkeyAuthentication: chave DSA para SSH2
     $ cat .ssh/id_dsa.pub | ssh usuario1@remoto \
             "cat - >>.ssh/authorized_keys"

Pode-se mudar a frase-senha mais tarde com "ssh-keygen -p". Não esqueça de verificar as configurações testando a conexão. Em caso de qualquer problema, use "ssh -v".

Você pode adicionar opções para as entradas em authorized_keys para limitar as máquinas e executar comandos específicos. Veja sshd(8) para obter mais detalhes.

Note que SSH2 tem HostbasedAuthentication. Para isso funcionar, você precisa ajustar as configurações de HostbasedAuthentication para yes em ambos os /etc/ssh/sshd_config na máquina servidor e /etc/ssh/ssh_config ou $HOME/.ssh/config na máquina cliente.


9.5.4 Lidando com clientes SSH estranhos

Há alguns clientes SSH livres disponíveis para plataformas não semelhantes ao Unix.

Windows
puTTY (GPL)
Windows (cygwin)
SSH em cygwin (GPL)
Macintosh Classic
macSSH (GPL) [Note que o Mac OS X inclui OpenSSH; use ssh na aplicação Terminal]

Veja também SourceForge.net, documentação do site, "6. CVS Instructions".


9.5.5 Configurando o ssh-agent

É mais seguro proteger sua chave de autenticação SSH com uma frase senha. Se isso não foi configurado, use ssh-keygen -p para configurar.

Coloque sua chave pública (por exemplo, ~/.ssh/id_rsa.pub) no ~/.ssh/authorized_keys em um host remoto usando conexão baseada em senha como descrito em Conectando com menos senhas – RSA, Seção 9.5.3.

     $ ssh-agent bash # ou ao invés, execute o programa zsh/tcsh/pdksh.
     $ ssh-add ~/.ssh/id_rsa
     Enter passphrase for /home/osamu/.ssh/id_rsa:
     Identity added: /home/osamu/.ssh/id_rsa (/home/osamu/.ssh/id_rsa)
     $ scp foo usuario@host.remoto:foo
      ... nenhuma frase senha necessária a partir daqui :-)
     $^D
      ... terminando sessão ssh-agent

Para o servidor X, scripts de inicialização normais do Debian executam ssh-agent como processo pai. Então você só precisa executar ssh-add um vez.

Para mais detalhes, leia ssh-agent(1) e ssh-add(1).


9.5.6 Resolução de problemas de SSH

Se você tiver problemas, verifique as permissões de arquivos de configuração e execute ssh com a opção "-v".

Use a opção "-P" se você for root e tiver problemas com um firewall; isso evita o uso das portas 1–1023 do servidor.

Se as conexões ssh para um sistema remoto pararem subitamente de funcionar, isso pode ser resultado de manutenção pelo administrador do sistema, normalmente uma mudança na host_key durante a manutenção do sistema. Depois de certificar-se de que é esse o caso e que ninguém está tentando simular o sistema remoto com algum hack esperto, pode-se conseguir uma conexão novamente removendo a entrada host_key de $HOME/.ssh/known_hosts na máquina local.


9.6 Correio

A configuração de correio se divide em três categorias:


9.6.1 Agentes de transporte de correio (MTAs)

Se quiser um MTA completo, use o exim. Referências:

O único MTA alternativo razoável é o postfix, se você se preocupa com a segurança. O sendmail e o qmail estão disponíveis como pacotes Debian mas não são recomendados.

Se você não precisar da capacidade de relay de um MTA como no caso de um sistema satélite como um PC laptop, você pode considerar usar um desses pacotes leves:

Nesse momento, acho que o exim é o mais adequado mesmo para minha estação de trabalho pessoal, que é um PC laptop.

Você pode precisar remover o exim para a instalação de um desses pacotes conflitantes:

     # dpkg -P --force-depends exim
     # apt-get install nullmailer         # ou ssmtp

9.6.1.1 Smarthost

Se você está executando o exim em um sistema que está conectado através dos serviços voltados ao consumidor, por favor, certifique-se de enviar suas mensagens de saída através de um smarthost oferecido por seu ISP ou alguns outros. [37] Há algumas boas razões:

As únicas exceções concebíveis são:


9.6.1.2 Configuração básica do Exim

Para usar o exim como seu MTA, configure o seguinte:

     /etc/exim/exim.conf     "eximconfig" para criar e editar
     /etc/inetd.conf         comente smtp para executar o exim como daemon
     /etc/email-addresses    Adicione listas de endereços fontes falsos
     verifique filtros usando exim -brw, -bf, -bF, -bV, ... etc.

9.6.1.3 Definindo um pega-tudo (catchall) para endereços de email inexistentes sob o Exim

No /etc/exim/exim.conf (Woody ou posterior), na parte DIRECTORS, adicione no fim (depois do direcionador localuser:) um direcionador pega-tudo que seleciona todos os endereços que o direcionador anterior não puder resolver (por Miquel van Smoorenburg):

     catchall:
       driver = smartuser
         new_address = webmaster@meudominio.com

Se desejar ter uma receita mais detalhada para cada domínio virtual, etc, adicione o seguinte no fim de /etc/exim/exim.conf (por mim, não foi bem testado):

     *@seudominio.com ${lookup{$1}lsearch*{/etc/email-addresses} \
             {$value}fail} T

Então tenha uma entrada "*" em /etc/email-addresses.


9.6.1.4 Configurando reescrita seletiva de endereço para mensagens de saída sob o Exim

Pode-se fazer a reescrita seletiva de endereços para mensagens de saída para produzir cabeçalhos "From:" apropriados para o exim configurando próximo do fim de /etc/exim/exim.conf:

     *@maquina1.algumacoisa.dnsdinam.org \
       "${if eq {${lookup{$1}lsearch{/etc/passwd}{1}{0}}} {1}  \
        {$0}{$1@algumacoisa.dnsdinam.org}}"  frFs

Isso reescreve todos os endereços combinando com *@maquina1.algumacoisa.dnsdinam.org.

  1. Procura-se através de /etc/password para ver se a parte local ($1) é um usuário local ou não.
  1. Se for um usuário local, o endereço é reescrito como a mesma coisa que era na primeira posição ($0).
  1. Se não for um usuário local, é reescrito a parte do domínio.

9.6.1.5 Configurando autenticação SMTP sob o Exim

Alguns serviços SMTP como yahoo.com requerem autenticação SMTP. Configure o arquivo /etc/exim/exim.conf como a seguir:

     remote_smtp:
       driver = smtp
       authenticate_hosts = smtp.mail.yahoo.com
     ...
     
     smarthost:
       driver = domainlist
       transport = remote_smtp
       route_list = "* smtp.mail.yahoo.com bydns_a"
     ...
     
     plain:
       driver = plaintext
       public_name = PLAIN
       client_send = "^cmatheson3^this_is_my_password"

Não esqueça das aspas na última linha.


9.6.2 Baixando mensagens – Fetchmail

O fetchmail é executado em modo daemon para baixar as mensagens de uma conta POP3 com um ISP para o sistema de correio local. Configure:

     /etc/init.d/fetchmail   
     /etc/rc?.d/???fetchmail executa update-rc.d fetchmail com prioridade padrão 30
     /etc/fetchmailrc        arquivo de configuração (chown 600, de propriedade de fetchmail)

As informações sobre como iniciar o fetchmail como um daemon a partir do script init.d para o Potato são confusas (no Woody isso foi resolvido). Veja os arquivos de exemplo /etc/init.d/fetchmail e /etc/fetchmailrc nos scripts de exemplo.

Se seus cabeçalhos das mensagens estiverem contaminados com ^M devido ao servidor de correio de seu ISP, adicione "stripcr" às suas opções em $HOME/.fetchmailrc:

     options fetchall no keep stripcr

9.6.3 Processando mensagens – Procmail

O procmail é um programa de entrega de correio local e de filtro. É necessário criar $HOME/.procmailrc para cada conta que usá-lo. Exemplo: _procmailrc


9.6.4 Lendo mensagens – Mutt

Use o mutt como o agente de correio do usuário (MUA) combinado com o vim. Personalize com ~/.muttrc; por exemplo:

     # usar modo visual e "gq" para reformatar citações
     set editor="vim -c 'set tw=72 et ft=mail'"
     #
     # supressão de cabeçalho tomada do manual (Sven's Draconian header weeding)
     #
     ignore *
     unignore from: date subject to cc
     unignore user-agent x-mailer
     hdr_order from subject to cc date user-agent x-mailer
     auto_view application/msword
     ....

Adicione o seguinte ao /etc/mailcap ou $HOME/.mailcap para exibir mensagens em HTML e anexos MS Word em seguida:

     text/html; lynx -force_html %s; needsterminal;
     application/msword; /usr/bin/antiword '%s'; copiousoutput;
     description="Microsoft Word Text"; nametemplate=%s.doc

9.7 Localização

O Debian é internationalizado, oferecendo suporte a um número crescente de idiomas e convenções de uso locais. A próxima subseção lista algumas das formas de diversidade que o Debian suporta atualmente, e as subseções seguintes discutem a localização, o processo de personalização de seu ambiente de trabalho para permitir entrada e saída atuais de seu(s) idioma(s) escolhido(s) e convenções para datas, formatos numéricos e monetários, e outros aspectos de um sistema que variam de acordo com sua região.


9.7.1 Básico da localização

Há vários detalhes para a personalização da localização e suporte a idioma nativo.


9.7.1.1 Localizando o teclado

O Debian é distribuído com mapas de teclado para aproximadamente duas dúzias de teclados. No Woody, reconfigure o teclado com:


9.7.1.2 Localizando arquivos de dados

A grande maioria dos pacotes de software do Debian suporta manipulação de caracteres não-US-ASCII através da variável de ambiente LC_CTYPE oferecida pela tecnologia locale na glibc.


9.7.1.3 Localizando a exibição

O X pode exibir qualquer codificação, incluindo UTF-8, e suporta todas as fontes. A lista inclui não apenas todas as fontes de 8 bits mas também fontes de 16 bits tais como Chinês, Japonês, ou Coreano. O método de entrada de caracter multi-byte é suportado pelo mecanismo Métodos de entrada X alternativos, Seção 9.7.10. Veja Exemplo para um sistema X window multi-idiomas, Seção 9.7.9 e Exemplo para UTF-8 no X, Seção 9.7.12.

A exibição código Japonês EUC também é disponível em console gráfico (S)VGA através do pacote kon2. Há um novo display Japonês alternativo, jfbterm que usa um console frame-buffer, também. Nesses ambientes de console, o método de entrada Japonês precisa ser fornecido pela aplicação. Use o pacote egg para o Emacs e use o pacote jvim "japonesado" para o ambiente Vim.

A instalação de fontes não Unicode no X ajudará na exibição de documentos com qualquer codificação no X. Então não se preocupe muito com a codificação das fontes.


9.7.1.4 Localizando mensagens e documentação

Existem traduções para muitas mensagens e documentos que são exibidos no sistema Debian, tais como mensagens de erro, saída de programa padrão, menus, e páginas de manual. Atualmente, existe suporte para páginas de manual em Alemão, Espanhol, Finlandês, Francês, Húngaro, Italiano, Japonês, Coreano, Polonês, Português, Chinês e Russo através dos pacotes manpages-LANG (onde LANG é uma lista separada por vírgulas de códigos de país ISO de duas letras. Use apt-cache search manpages-|less para obter uma lista das páginas de manual Unix disponíveis.)

Para acessar uma página de manual NLS, o usuário precisa definir a variável de ambiente LC_MESSAGES para o valor apropriado. Por exemplo, no caso das páginas de manual da língua italiana, LC_MESSAGES precisa ser configurada para it. O programa man então procurará por páginas de manual italianas sob /usr/share/man/it/.


9.7.2 Locales

O Debian suporta a tecnologia locale. Locale é um mecanismo que permite que um programa forneça saída apropriada e funcionalidade de acordo com as convenções locais como conjunto de caracteres, formato de data e hora, símbolo da moeda, e outros. Ele usa variáveis de ambiente para determinar o comportamento apropriado. Por exemplo, considerando que você tenha ambos os locales Inglês Americano e Alemão instalados em seu sistema, as mensagens de erro de muitos programas podem ser multi-idiomas:

     $ LANG="en_US" cat foo
     cat: foo: No such file or directory
     $ LANG="de_DE" cat foo
     cat: foo: Datei oder Verzeichnis nicht gefunden

A Glibc oferece suporte a essa funcionalidade como uma biblioteca. Veja locale(7).


9.7.3 Introdução a locales

A descrição completa de locale consiste de 3 partes: xx_YY.ZZZZ.

Para códigos de idiomas e códigos de países, veja a descrição pertinente no info gettext.

Por favor, note que essa parte de codeset pode ser normalizada internamente para obter compatibilidade sobre plataformas removendo todos os - e convertendo todos os caracteres para minúsculas. Codesets típicos são:

Sobre o significado de jargões básicos de sistema de codificação:

ISO-8859-?, EUC, ISO-10646-1, UCS-2, UCS-4, e UTF-8 compartilham o mesmo código com ASCII para os caracteres de 7 bit. EUC ou Shift-JIS usam caracteres de bit alto (0x80-0xff) para indicar que parte da codificação é 16 bit. UTF-8 também usa caracteres de bit alto (0x80-0xff) para indicar bytes de seqüência de caracter de não 7 bit e essa é a forma mais inteligente de um sistema de codificação lidar com caracteres não-ASCII.

Por favor, note a diferença de ordem de byte da implementação Unicode:

Para mais detalhes veja Introdução a i18n.


9.7.4 Ativando suporte a locale

O Debian não vem com todos os locales disponíveis pré-compilados. Verifique /usr/lib/locale para ver quais locales (além do padrão "C") estão compilados para seu sistema. Se o que você precisar não estiver presente, você tem duas opções:


9.7.5 Ativando um locale específico

As seguintes variáveis de ambiente são avaliadas nessa ordem para fornecer valores particulares de locale para os programas:

  1. LANGUAGE: Essa variável de ambiente consiste de uma lista de nomes de locale em ordem de prioridade. Usada somente se o locale POSIX estiver definido para um valor diferente de "C" [no Woody; na versão Potato sempre tinha prioridade sobre o locale POSIX]. (extensão GNU)
  1. LC_ALL: Se for não nula, o valor é usado para todas as categorias de locale. (POSIX.1) Geralmente "" (null).
  1. LC_*: Se for não nula, seu valor é usado para a categoria correspondente (POSIX.1). Geralmente "C".

    As variáveis LC_* são:

  1. LANG: Se for não nula e LC_ALL for indefinida, o valor é usado para todas as categorias LC_* de locale com valores indefinidos. (POSIX.1) Geralmente é "C".

Note que algumas aplicações (por exemplo, Netscape 4) ignoram configurações LC_*.

O programa locale pode exibir as configurações ativas de locale e os locales disponíveis; veja locale(1). (NOTA: locale -a lista todos os locales que seu sistema conhece; isso não significa que todos eles estão compilados! Veja Ativando suporte a locale, Seção 9.7.4.)


9.7.6 Locale de formato de data ISO 8601

O suporte de locale para o padrão internacional de data de yyyy-mm-dd (formato de data ISO 8601) é fornecido pelo locale chamado en_DK, "Inglês na Dinamarca", o que é um pouco de brincadeira :-) Isso parece funcionar apenas em tela de console para o ls.


9.7.7 Exemplo para os Estados Unidos (ISO-8859-1)

Adicione as seguintes linhas ao ~/.bash_profile:

     LC_CTYPE=en_US.ISO-8859-1
     export LC_CTYPE

9.7.8 Exemplo para a França com o sinal de Euro (ISO-8859-15)

Adicione as seguintes linhas ao ~/.bash_profile:

     LANG=fr_FR@euro
     export LANG
     LC_CTYPE=fr_FR@euro
     export LC_CTYPE

Configure o teclado para o "AZERTY" Francês como descrito em Localizando o teclado, Seção 9.7.1.1; adicione as páginas de manual em francês instalando manpages-fr. A tecla Alt-direito nos Estados Unidos é chamada Alt-Gr na Europa. Pressioná-lo junto com algumas teclas cria vários caracteres acentuados e caracteres especiais. Por exemplo, Alt-Gr+E cria um sinal de Euro.

Muitas línguas da Europa ocidental podem ser configuradas similarmente.

Veja o Debian Euro HOWTO para adicionar suporte para a nova moeda Euro e Utiliser et configurer Debian pour le français para mais detalhes em francês.


9.7.9 Exemplo para um sistema X window multi-idiomas

Vamos configurar um sistema X window multi-idioma que suporta simultaneamente japonês, inglês, alemão e francês com as codificações EUC, UTF-8 e ISO-8859-1 em diferentes consoles.

Eu mostrarei a você uma personalização usando o sistema de menus do Debian. Veja os detalhes do sistema de menus do Debian em /usr/share/doc/menu/html/index.html. Também criarei um atalho para o navegador web mozilla nesse exemplo. [38]

Para outros suportes a idioma CJK, veja as seções seguintes e as páginas da SuSE para CJK.


9.7.10 Métodos de entrada X alternativos

Há muitos pacotes de suporte de métodos de entrada do X alternativos disponíveis:

     Idioma     LC_CTYPE     serv. XIM  XMODIFIERS              Tecla início
     Japonês    ja_JP*       kinput2    "@im=kinput2"           Shift-Espaço
     Coreano    ko_KR*       ami        "@im=Ami"               Shift-Espaço
     Chinês(T)  zh_TW.Big5   xcin       "@im=xcin-zh_TW.big5"   Ctrl-Espaço
     Chinês(S)  zh_CN.GB2312 xcin       "@im=xcin-zh_CN.GB2312" Ctrl-Espaço

O método de entrada japonês kinput2 é oferecido pelos pacotes como kinput2-canna-wnn, kinput2-canna, e kinput2-wnn. O japonês precisa de um servidor de dicionário tal como canna e freewn-jserver para ser prático.


9.7.11 Emuladores de terminal no X

Há muitos consoles que suportam codificações de 8 bits simples quando os pacotes de fonte pertinentes são instalados:

Os suportes de codificação multi-byte dos consoles X são fornecidos pelo xterm através da codificação UTF-8 (Exemplo para UTF-8 no X, Seção 9.7.12). Outros suportes de codificação tradicionais estão em progresso (em 2003). Os seguintes pacotes oferecem suportes a codificações tradicionais:

Para o kterm (e possivelmente outros), você pode desejar ativar XIM através do menu depois da ação do mouse Ctrl-click-botão_do_meio.


9.7.12 Exemplo para UTF-8 no X

O suporte a UTF-8 para o emulador de terminal X é fornecido pelo programa uxterm no pacote xterm para o XFree86 4.x. Ele habilita suporte para todos os idiomas. Ele é um wrapper sobre o programa xterm(1) que invoca esse último com a classe de recursos X "UXterm" definida.

Por exemplo, para habilitar uma bela exibição grande de caracteres de inglês, russo, japonês, chinês e coreano, adicione o seguinte ao seu arquivo ~/.Xresources depois de instalar todas as fontes pertinentes:

     ! definindo fonte grande
     UXTerm*font: -misc-fixed-medium-r-normal-*-18-120-100-100-c-90-iso10646-1
     ! Usar XIM para Japonês
     *inputMethod: kinput2

Então execute xrdb -merge ~/.Xresources para atualizar os recursos X como descrito em Recursos do X, Seção 9.4.10.

Entretanto, muitos dos pacotes de programas de console populares como o vim, mutt, e emacs tornaram-se compatíveis com UTF-8 recentemente (Woody-Sarge). Programa como o mc ainda não é compatível com UTF-8 mas é simplesmente 8 bits limpos. Se você está editando com a parte de 7 bit ASCII de um arquivo de codificação desconhecida ou mista, é mais seguro usar o editor de 8 bits limpos sem locale.

Veja The Unicode HOWTO.


9.7.13 Exemplo para UTF-8 em um console framebuffer

O suporte UTF-8 em um console FB é fornecido pelo bterm e é usado no debian-installer.


9.7.14 Além dos locales

Quando você estiver configurando o sistema para um ambiente de idioma nativo pela primeira vez, por favor, pense em usar o tasksel ou o aptitude para determinar quais pacotes são selecionados ao escolher a tarefa de ambiente de idioma correspondente. É útil fazer escolha de pacote mesmo para a configuração multi-idioma. Se você encontrar algum conflito de dependência de pacote durante a instalação de seu sistema configurado cuidadosamente, evite instalar qualquer software que conflite com o sistema existente. Você pode ter que usar o update-alternative para obter o estado original novamente para alguns comandos, já que um recém instalado pode ter uma prioridade mais alta que os já existentes.

Os maiores e mais novos programas estão usando a glibc 2.2 e muitas vezes são internacionalizados. Então uma versão especialmente localizada como o jvim para o Vim não deve ser necessária já que sua funcionalidade é oferecida pela versão 6.0 do vim no X. Na verdade, ainda está um pouco grosseiro. Já que o jvim tem uma versão compilada com suporte de método de entrada japonês direto (canna) mesmo no console e resolve muitos outros problemas específicos do Japonês de forma madura, você pode ainda querê-lo :-)

Os programas podem precisar ter configuração além do locale para se ter um ambiente de trabalho confortável. O pacote language-env e seu comando set-language-env facilita enormemente esse processo.

Veja também o documento de internacionalização, Introdução a i18n. Ele é dedicado aos desenvolvedores mas também é útil para os administradores de sistema.


[ anterior ] [ Conteúdo ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ próximo ]

Referência Debian

CVS, Seg Abr 3 22:58:08 UTC 2005

Osamu Aoki osamu@debian.org
Paulo Rogério Ormenese (líder: pt-br) pormenese@uol.com.br
Autores, Seção A.1