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
.
Veja O programa init
, Seção
2.4.1 para o básico do script init do Debian.
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.
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)
.
Há umas poucas configurações de otimização do hardware que o Debian deixa aos cuidados do administrador do sistema.
hdparm
hdparm(8)
primeiro.
setcd
setcd(1)
.
setserial
scsitools
memtest86
hwtools
schedutils
taskset
, irqset
, lsrt
, e
rt
.
nice
e renice
(não incluídos), eles
permitem total controle dos parâmetros de escalonamento de processos.
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:
tpconfig
- Um programa para configurar dispositivos touchpad
apmd
- Utilitários para Gerenciamento Avançado de Energia (APM)
acpi
- Exibe informações sobre dispositivos ACPI
acpid
- Utilitários usando ACPI
lphdisk
- prepara partição de hibernação para Phoenix NoteBIOS
sleepd
- põe um laptop para dormir durante inatividade
noflushd
- permite que discos rígidos ociosos diminuam o giro
big-cursor
- cursores de mouse maiores para o X
acme
- Habilita os "botões multimídia" encontrados em
laptops
tpctl
- ferramentas de configuração de hardware do IBM ThinkPad
mwavem
- suporte a modem Mwave/ACP
toshset
- acessa muito da interface de hardware do laptop Toshiba
toshutils
- utilitários de laptop Toshiba
sjog
- um programa para usar o "Jog Dial" (roda de
avanço) em laptops Sony Vaio
spicctrl
- programa controlador do Sony Vaio para ajustar o brilho
da luz de fundo do LCD
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.
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.
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
Alguns grupos interessantes:
su
se
pam_wheel.so
for usado sem o argumento group=.
/usr/src
. Ele pode ser usado localmente para dar a um usuário a
capacidade de gerenciar o código fonte do sistema.
/usr/local
e criar diretórios em /home
.
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
.
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
.
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
.
Referências:
OpenLDAP
openldap-guide
LDAP Linux
HOWTO
LDAP
Implementation HOWTO
OpenLDAP, relatos
de uso extensivo
Open LDAP
com Courier IMAP e Postfix
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.
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).
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
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:
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.
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
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.
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))
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:
imagens de
disquete
.
imagem de CD
inicializável mínimo
.
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.
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.
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...)
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.
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):
xhost
xhost
, Seção 9.4.7 e
xhost(1x)
.
xauth
xhost
).
ssh -X
.
xauth(1x)
.
xdm
, wdm
, gdm
, kdm
,
...
xauth
).
xdm(1x)
e Xsecurity(7)
para informações básicas
sobre o controle de acesso ao display do X.
wdm(1x)
, gdm(8)
, e kdm.options(5)
para mais informações, se esses estiverem instalados.
init
System-V e
níveis de execução (runlevels), Seção 6.5.4 para saber como desabilitar o
xdm
para ter um console Linux depois da inicialização sem ter que
excluir o pacote xdm
.
ssh -X
ssh
, Seção 9.4.8.
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.
Existem alguns (meta)pacotes disponibilizados para facilitar a instalação do sistema X no Woody.
x-window-system-core
xserver-xfree86
, um conjunto de fontes, e um grupo de clientes X
básicos e utilidades.
x-window-system
x-window-system-core
, twm
, e xdm
, isto
é, não é preciso instalar o x-window-system-core
se você instalar
esse.)
xserver-common-v3
xserver-*
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.)
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:
discover
— sistema de identificaçãode hardware.
mdetect
— ferramenta de autodetecção do mouse.
read-edid
— ferramenta para obtenção de informação para
monitores VESA PnP.
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
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
.
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
.
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
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:
/tmp/.X11-unix/XD
(então ele só é acessível
pela máquina).
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.
A sessão X (servidor X + cliente X) pode ser iniciada por:
startx
: comando de script para initx
para iniciar o
servidor e o cliente X a partir do console de caracteres do Linux. Se o
arquivo ~/.xinitrc
não existir, /etc/X11/Xsession
é
executado através de /etc/X11/xinit/xinitrc
.
xdm
, gdm
, kdm
, ou wdm
:
Daemon gerenciador de display X para iniciar o servidor e o cliente X, e para
controlar o login a partir de uma tela GUI. /etc/X11/Xsession
é
executado diretamente.
O console pode ser disponibilizado com "Deixe-me desabilitar o X na inicialização !", Seção 8.1.4.
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
:
~/.xsession
ou ~/.Xsession
, se for definido.
/usr/bin/x-session-manager
, se for definido.
/usr/bin/x-window-manager
, se for definido.
/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)
.
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.):
gnome-session
kdebase
(ou kdebase3
para KDE3)
blackbox
fluxbox
xfce
icewm
fvwm
wmaker
enlightenment
Veja Gerenciadores de Janela para o
X
.
Para configurar um ambiente KDE/GNOME completo, os seguintes metapacotes são úteis:
kde
gnome
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.
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.
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)
.
ssh
O uso de ssh
permite uma conexão segura a partir de um servidor X
local para um servidor de aplicações remoto.
/etc/ssh/sshd_config
da máquina remota,
se você quiser evitar as opções de linha de comando correspondentes.
xterm
na máquina local.
ssh
para estabelecer uma conexão com o sistema remoto.
nomelocal @ maquinalocal $ ssh -q -X -l nomelogin maquinaremota.dominio Password: .....
nomelogin @ maquinaremota $ gimp &
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.
xterm
Aprenda tudo sobre o xterm
em http://dickey.his.com/xterm/xterm.faq.html
.
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
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
.
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:
ttf-commercial
msttcorefonts (>1.1.0)
(Pacote no Woody não funciona desde
8/2002 devido a mudanças na página web da Microsoft.)
Você terá uma seleção realmente boa de fontes TT sob o custo de contaminar seu sistema Livre com fontes não-Livres.
Há alguns pacotes de navegadores Web com capacidades de exibição gráfica desde a versão Woody:
mozilla
O navegador Mozilla (novo)
galeon
Navegador baseado no Mozilla com uma interface de usuário
para o Gnome (novo)
konqueror
Navegador KDE
dillo
Navegador GTK
amaya-gtk
Navegador de referência W3C
amaya-lesstif
Navegador de referência W3C
netscape-...
(muito, antigo)
communicator-...
(muito, antigo)
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:
http://java.sun.com
.
http://www.macromedia.com/software/flashplayer/
.
freewrl
: navegador VRML e plug-in Netscape
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.
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:
.rhosts
ou
/etc/hosts.equiv
combinado com autenticação de chave pública de
máquina cliente (desabilitado)
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:
/etc/ssh/ssh_config
: padrões do cliente SSH. Veja
ssh(1)
. As entradas notáveis são:
/etc/ssh/sshd_config
: Padrões do servidor SSH. Veja
sshd(8)
. As entradas notáveis são:
sshd
deve escutar. São permitidas múltiplas opções.
$HOME/.ssh/authorized_keys
: as listas das chaves públicas padrões
que os clientes usaram para conectar a essa conta nessa máquina. Veja
ssh-keygen(1)
.
$HOME/.ssh/identity
: Veja ssh-add(1)
e
ssh-agent(1)
.
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 ^]).
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.
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.
Há alguns clientes SSH livres disponíveis para plataformas não semelhantes ao Unix.
puTTY
(GPL)
cygwin
(GPL)
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".
É 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)
.
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.
A configuração de correio se divide em três categorias:
exim
, postfix
, sendmail
,
qmail
, ssmtp
, nullmailer
, ...
procmail
, fetchmail
,
mailx
, ...
mutt
,
emacs
+gnus
, ...
Se quiser um MTA completo, use o exim
. Referências:
exim-doc
e exim-doc-html
http://www.exim.org/
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:
ssmtp
: precisa de conexão SMTP e tem capacidade de alias, ou
nullmailer
: pode enviar mas não tem capacidade de alias
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
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.
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
.
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.
/etc/password
para ver se a parte local ($1)
é um usuário local ou não.
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.
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
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
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
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.
Há alguns detalhes para a personalização da localização e suporte a idioma nativo.
O Debian é distribuído com mapas de teclado para aproximadamente duas dúzias de teclados. No Woody, reconfigure o teclado com:
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
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.
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/
.
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)
.
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:
/etc/locale.gen
para adicionar o locale desejado, e então
executar locale-gen
como root para compilá-lo. Veja
locale-gen(8)
e páginas de manual listadas em sua seção "SEE
ALSO".
locales
. Ou se ele ainda não estiver instalado, instalar
locales
chamará a interface debconf para permitir-lhe a escolha
dos locales necessários e compilar a base de dados.
As seguintes variáveis de ambiente são avaliadas nessa ordem para fornecer valores particulares de locale para os programas:
As variáveis LC_* são:
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.)
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
.
Adicione as seguintes linhas ao ~/.bash_profile
:
LC_CTYPE=en_US.ISO-8859-1 export LC_CTYPE
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.
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.
canna
— Servidor local (licença urso livre), ou
freewnn-jserver
— Servidor extensível por rede (Domínio
Público)
kinput2-canna
— para o X, ou
kinput2-canna-wnn
— para o X, e
egg
— funciona diretamente com Emacsen mesmo em console
(opcional)
kterm
— X (clássico),
mlterm
— X (muito elegante, tamanho de fonte variável), e
startx
, xdm
,
...)
~/.xsession
que defina um ambiente X específico do
usuário:
#!/bin/sh # Isso faz o X funcionar quando uso su para root. if [ -z "$XAUTHORITY" ]; then XAUTHORITY=$HOME/.Xauthority export XAUTHORITY fi # Locale Japonês como padrão, locale C como backup # export LANG=ja_JP.eucJP # certificar-se de sobrescrever en_US.ISO-8859-1 usado no console # export LC_CTYPE=ja_JP.eucJP # Eu quero que mensagem de menu seja em inglês em ASCII :-) export LC_MESSAGES=C # ativar método de entrada kinput2 & XMODIFIERS=@im=kinput2 export XMODIFIERS # Sobre o gerenciador de janelas blackbox (leve) exec /usr/bin/blackbox
~/.bashrc
:
# Muda idioma de ambiente dependendo do programa de console # Shells de X executam apenas .bashrc (Elas não são shell de login) # Ambiente geral para X é definido por .xsession if [ $TERM = kterm ] || [ $TERM = mlterm ]; then unset LC_ALL export LANG=C #export LANG=ja_JP.eucJP # Para exibir data ISO yyyy-mm-dd, mais natural para os japoneses :-) export LC_TIME=en_DK.ISO-8859-1 export LC_MESSAGES=C export LANGUAGE=ja_JP.eucJP:en_US.ISO-8859-1:C export LC_CTYPE=ja_JP.eucJP else unset LC_ALL export LANG=C export LC_TIME=en_DK.ISO-8859-1 export LANGUAGE=en_US.ISO-8859-1:C export LC_CTYPE=en_US.ISO-8859-1 fi
~/.muttrc
:
# suporte UTF-8 não é popular no ambiente EMACS japonês # codificação de 7 bits iso-2022-jp é mais fácil para todos # ordem de codificação padrão = us-ascii --> iso-8859-1 --> utf-8 #set send_charset="us-ascii:iso-8859-1:utf-8" #set allow_8bit=yes set send_charset="us-ascii:iso-8859-1:iso-2022-jp" set allow_8bit=no
kinput2
para aplicação X
~/.Xresources
(parece que o Debian cuida disso automaticamente de
alguma forma).
mlterm
) também permitem que você
configure *inputMethod: e outras informações dinamicamente durante
a execução (pressione Ctrl-BotãoMouse-3 no
mlterm
).
Veja também as páginas da SuSE para
CJK
.
Precisamos disso para todos no futuro. Veja The Unicode
HOWTO
.
O suporte UTF-8 em console FB é fornecido pelo bterm
e é usado no
debian-installer
.
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.
Referência Debian
1.06-16, Sáb Jan 3 21:37:21 UTC 2004osamu@debian.org
pormenese@uol.com.br