[ 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 texto. Um pré-requisito desse capítulo é a leitura de Dicas para instalação do Sistema Debian, Capítulo 3.

Para os preocupados com a segurança, é altamente recomendado ler o Securing Debian Manual, que também pode ser encontrado como o pacote harden-doc.


9.1 Dicas de inicialização do sistema

Veja O programa init, Seção 2.4.1 para o básico do script init do Debian.


9.1.1 Personalizando os scripts init

O Debian usa o sistema de script init sys-V. Apesar de todos os scripts init em /etc/init.d/* serem marcados como arquivos de configuração e os administradores de sistema poderem modificá-los livremente, o método preferido para personalizar os scripts init é editar os arquivos em /etc/default/*.

Por exemplo, /etc/init.d/rcS pode ser usado para personalizar os padrões de inicialização para motd, sulogin, etc.


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 Otimização de acesso ao 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 é 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 Controle de acesso


9.2.1 Controle de acesso através de PAM e login

PAM (Pluggable Authentication Modules) fornece controle de 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

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 ele pode 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 Significado de vários grupos

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 sudo – um ambiente de trabalho mais seguro

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

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 Controle de acesso a programas daemon

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 Lightweight Directory Access Protocol (Protocolo de Acesso a Diretório Leve)

Referências:


9.3 Gravador 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 unidades 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, R/W):

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 especiais 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 "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

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


9.4 O programa X

O ambiente X é 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 pelo pacote xfree86-common. Esse contém uma revisão interessante e de autoridade sobre os problemas de mapeamento de teclado, feita por Branden Robinson.

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.
Cliente X, Seção 9.4.4
um programa em um sistema (local ou remoto) que executa uma aplicação compatível com X-window.

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 Conexão TCP/IP para o X, Seção 9.4.6.


9.4.1 Pacotes do sistema 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 por qualquer razão que seja. Algumas antigas ATI mach64 não são suportadas no XF4, algumas placas de vídeo 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 Pacotes de detecção de hardware para o servidor 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 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 um 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 Configurar o servidor XF4

Para (re-)configurar o 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 Configurar o servidor XF3

Para (re-)configurar o servidor XF3,

     # 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 Configurar o servidor X manualmente

Para adicionar personalizações do usuário, não edite o arquivo de configuração entre o texto (Isso é XF4):

     ### 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

9.4.4 Cliente 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ão X personalizada, 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.


9.4.5 Sessão X

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

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


9.4.5.1 Sessão X personalizada

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 o gerenciador 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 o gerenciador de seçã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 do 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 Iniciar um gerenciador de sessão/janelas X específico, Seção 9.4.5.2, Obter root no X, Seção 9.4.11, e Exemplo para o sistema bilíngüe (Japonês EUC e ISO-8859-1), Seção 9.7.8.

Outros recursos X específicos do usuário podem ser definidos em ~/.Xresources, enquanto que os recursos X globais do sistema são definidos em /etc/X11/Xresources/*. Veja xrdb(1x).

Mapas de teclado e funções dos botões do apontador personalizados para o usuário podem ser especificados em ~/.xmodmaprc. Veja xmodmap(1x).


9.4.5.2 Iniciar um gerenciador de sessão/janelas X específico

Seguindo o princípio descrito em Sessão X personalizada, 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 Configurar o ambiente KDE/GNOME

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

A instalação desses pacotes com ferramentas que manipulam recommends, como o dselect e o aptitudes, lhe dá melhores opções de softwares 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 Conexão TCP/IP para o X

Devido a conexão com soquete TCP/IP 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 Conexão X remota: 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 Conexão X remota: 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 Conexão TCP/IP para o X, 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 Conexão X remota: 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 xterm

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


9.4.10 Base de dados de 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.

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

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

     xrdb -merge ~/.Xresources

9.4.11 Obter 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.12 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).

Lembre-se de instalar os arquivos de fontes necessários e gerar os arquivos fonts.{scale,dir} de forma que as fontes possam ser indexadas e usadas.

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 TT sob o custo de contaminar seu sistema Livre com fontes não-Livres.


9.4.13 Navegador Web (gráfico)

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

Primeiro instale o servidor e o cliente OpenSSH.

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

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

O SSH tem 2 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 /etc/ssh/sshd_config da máquina remota.


9.5.3 Conectar com menos senhas

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/identify   | 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 a configuração 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 Clientes SSH externos

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 Agente SSH

É 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 Conectar com menos senhas, 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 servidor X, scripts 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

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 conectar novamente removendo a entrada host_key de $HOME/.ssh/known_hosts na máquina local.


9.6 Programas de correio

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


9.6.1 Agente de transporte de correio (MTA)

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 de capacidade de relay do 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 Configuração básica do Exim

Para usar o exim como 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.2 Um pega-tudo para endereços de email inexistentes (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.3 Reescrita seletiva de endereço para mensagens de saída (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.4 Autenticação SMTP com 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 Utilitário de correio (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 Utilitário de correio (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 Agente de correio do usuário (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 e suporte a idioma nativo

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 Personalização básica

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


9.7.1.1 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 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 Exibição

O X pode exibir qualquer código 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 XIM. Veja Exemplo para o sistema bilíngüe (Japonês EUC e ISO-8859-1), Seção 9.7.8.

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 FB no console, 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.


9.7.1.4 Traduçã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 do código 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 Francês 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="fr_FR" cat foo
     cat: foo: Aucun fichier ou répertoire de ce type

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


9.7.3 Ativar capacidade de 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.4 Ativar 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 Ativar capacidade de suporte a locale, Seção 9.7.3.)


9.7.5 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 que é um pouco de brincadeira :-) Isso parece funcionar apenas em tela de console para o ls.


9.7.6 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.7 Exemplo para a França com o sinal 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 Teclado, Seção 9.7.1.1. e adicione as páginas de manual 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, etc. Por exemplo, Alt-Gr+E cria o sinal 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.8 Exemplo para o sistema bilíngüe (Japonês EUC e ISO-8859-1)

Vamos configurar sistema bilíngüe: ja_JP.eucJP (Japonês EUC, ambiente Unix Japonês tradicional) no X com mensagens em inglês e tipo de data ISO, e en_US.ISO-8859-1 (praticamente ASCII com suporte a caracteres acentuados) no console Linux.

Veja também as páginas da SuSE para CJK.


9.7.9 Exemplo para UTF-8 no X

Precisamos disso para todos no futuro. Veja The Unicode HOWTO.


9.7.10 Exemplo para UTF-8 em console FB

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


9.7.11 Além do locale

Quando você estiver configurando o 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 refinadamente, evite instalar o software que conflita com o sistema existente. Você pode ter que usar o update-alternative para obter o estado original novamente para alguns comandos, já que o 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 e 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 IM 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

1.06-16, Sáb Jan 3 21:37:21 UTC 2004

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