Este capítulo descreve apenas o básico da configuração do sistema através da interface baseada em linha de comando. Antes de ler este capítulo, você deve ler Dicas para instalação do Sistema Debian, Capítulo 3.
Se você está preocupado com a segurança então deve ler o Securing Debian
Manual
, que vem no pacote harden-doc
.
O Debian usa o sistema de script de init System V. Veja O programa init
, Seção
2.4.1 para uma introdução.
A maneira mais fácil de controlar o comportamento de um script init é alterando
atribuições de variáveis de ambiente no arquivo nomeado como no script init no
diretório /etc/default
. [32] Por exemplo, /etc/default/hotplug
pode ser
usado controlar como /etc/init.d/hotplug
funciona. O arquivo
/etc/default/rcS
pode ser usado para personalizar padrões de tempo
de inicialização para motd
, sulogin
, etc.
Se você não puder obter o comportamento desejado mudando essas variáveis, então você pode modificar os próprios scripts init: eles são todos arquivos de configuração.
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
irqtune
: muda a prioridade IRQ de dispositivos para permitir que
dispositivos que precisem de alta prioridade e serviço rápido (por exemplo,
portas seriais, modems) tenham a prioridade necessária. É possível aumentar a
velocidade através de serial/modem em 3x.
scanport
: varre o espaço de I/O a partir de 0x100 até 0x3ff
procurando por dispositivos ISA instalados.
inb
: um pequeno e rápido hack que lê uma porta de I/O e devolve o
valor em hexadecimal e binário.
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 é muito
eficaz para aumentar a velocidade de acesso ao arquivo. Consulte
fstab(5)
e mount(8)
.
Alguns hardwares podem ser ajustados diretamente pelo kernel Linux através do sistema de arquivos proc. Veja Ajustando o kernel pelo sistema de arquivos proc, Seção 7.3.
Há muitos utilitários de configuração de hardware específicos. Muitos deles se destinam a necessidades específicas do PC laptop. Eis alguns pacotes interessantes disponíveis no Debian:
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 para usar 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) permite a você controlar como os usuários efetuam login.
/etc/pam.d/* # arquivos de controle de PAM /etc/pam.d/login # arquivo de controle de PAM para login /etc/security/* # parâmetros de módulo PAM /etc/securetty # controla login de root pelo console (login) /etc/login.defs # controla as definições para login (login)
Modifique o conteúdo de /etc/pam.d/login
como a seguir, se você
quiser terminais de console inseguros mas sem senha sob seu próprio risco.
#auth required pam_unix.so nullok auth required pam_permit.so
Pode-se aplicar truques similares para o xdm
, gdm
,
... , para console X sem senha.
Por outro lado, instale cracklib2
e modifique
/etc/pam.d/passwd
como a seguir, se você desejar garantir uma boa
segurança de senhas.
password required pam_cracklib.so retry=3 minlen=6 difok=3
Uma senha de login para uma única vez, para ativação de conta, também pode
ajudar. Para isso, use o comando passwd com a opção -e
passwd(1)
.
O número máximo de processos pode ser configurado com ulimit -u
1000 em um shell Bash ou com definições em
/etc/security/limits.conf
de PAM. Outros parâmetros como
core podem ser configurados de maneira similar. O valor inicial
de PATH
pode ser ajustado em /etc/login.defs
antes do
script de início do shell.
A documentação para PAM está no pacote libpam-doc
. O Guia dos
Administradores de Sistema para Linux-PAM cobre a configuração de PAM,
quais módulos estão disponíveis, etc. A documentação também inclui O Guia
dos Desenvolvedores de Aplicação para Linux-PAM e O Guia dos
Escritores de Módulos Linux-PAM.
su
não suporta o grupo wheel"
Essa é a famosa frase do final da velha página info su de Richard
M. Stallman. Não se preocupe: o su
atual no Debian usa PAM,
então pode-se restringir a habilidade de usar o su
para qualquer
grupo usando pam_wheel.so
em /etc/pam.d/su
. O
seguinte configurará o grupo adm em um sistema Debian como um
equivalente do grupo wheel do BSD e permitirá su
sem
uma senha para seus membros.
# configuração anti-RMS em /etc/pam.d/su auth required pam_wheel.so group=adm # Membros Wheel capazes de usar su sem uma senha auth sufficient pam_wheel.so trust group=adm
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
Meu uso do sudo
é na maior parte uma proteção contra minha própria
estupidez. Pessoalmente, eu acho que usar o sudo
é uma
alternativa melhor que sempre usar o sistema como root.
Instale o sudo
e ative-o configurando as opções em
. Verifique também o recurso do
grupo sudo em /etc/sudoers
/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
.
Use Lightweight Directory Access Protocol (LDAP)(Protocolo de Acesso a Diretório Leve) 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
unidade de disquetes (A:). Fazer isso com freeDOS pode ser mais interessante.
Esse arquivo de imagem de CD pode ser inspecionado montando-o no dispositivo loop.
# mount -t iso9660 -o ro,loop cd-image.raw /cdrom # cd /cdrom # mc # umount /cdrom
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 ruins no fim que tornam impossível
sua cópia através do dd
(o CD do Windows 98 é um deles). O pacote
cdrecord
vem com o comando readcd
. Use-o para copiar
o conteúdo de qualquer CD para um arquivo imagem. Se for um disco de dados,
monte-o e execute df
para ver seu tamanho real. Divida o número
mostrado em blocos (1 bloco = 1024 bytes) por 2 para obter o número de setores
do CD real (1 setor = 2048 bytes). Execute o readcd
com opções e
use essa imagem de disco para gravar o CD-R/RW.
# readcd dev=target,lun,scsibusno # selecione função 11
Aqui, ajuste os 3 parâmetros para 0 para muitos casos. Geralmente o número de
setores dados pelo readcd
é excessivo! Use o número acima a
partir de um mount real para melhores resultados.
Deve-se notar que o uso do dd
tem alguns problemas se usado no
CD-ROM. A primeira execução do comando dd
pode causar uma
mensagem de erro e pode resultar em uma imagem de disco mais curta com a perda
do final. A segunda execução do comando dd
pode resultar em uma
imagem de disco maior com lixo anexo ao final em alguns sistemas se o tamanho
do dado não for especificado. Somente a segunda execução do comando
dd
com o tamanho de dado correto especificado sem ejetar o CD
depois de mensagem de erro parece evitar esses problemas. Se o tamanho da
imagem mostrado pelo df
for 46301184 blocos, use o
seguinte comando duas vezes para obter a imagem correta (esta é minha
informação empírica):
# dd if=/dev/cdrom of=cd.img bs=2048 count=$((46301184/2))
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 de backup de exemplo
. 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.
backup
Não testado por mim:
# apt-get install cdrecord cdparanoia # cdparanoia -s -B # cdrecord dev=0,0,0 speed=2 -v -dao -eject defpregap=1 -audio *.wav
ou,
# apt-get install cdrdao #disk at once # cdrdao read-cd --device /dev/cdrom --paranoia-mode 3 my_cd # lê o cd # cdrdao write --device /dev/cdrom --speed 8 my_cd # grava um CD novo
O cdrdao
faz uma cópia real (sem intervalos, etc...).
O Sistema X Window é provido pelo XFree86
. Há duas versões principais
do servidor X disponíveis no sistema Debian: XFree86 Versão 3.3 (XF3) e XFree86
Versão séries 4.x (XF4), ambas baseadas em especificações X11R6 pelo X.Org
.
Para informações básicas do X, refira-se a X(7)
, ao XWindow-User-HOWTO
do LDP, e ao Mini-HOWTO de
Aplicações remotas no X
. Para um guia de usuário específico do
Debian, leia o arquivo /usr/share/doc/xfree86-common/FAQ.gz
fornecido no pacote xfree86-common
. Esse contém uma revisão
interessante e de autoridade sobre os problemas de mapeamento de teclado, feita
por Branden Robinson.
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 Usando o X sobre
TCP/IP, 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-xfree86
) por qualquer razão que seja.
Algumas antigas placas ATI mach64 não são suportadas no XF4, outras placas
travam na versão XF4 do Woody, etc. (Para saber os pacotes disponíveis, use
apt-cache search xserver-|less. Todos os servidores XF3 dependem
do pacote xserver-common-v3
.)
Em muitos casos, o pacote a instalar é o x-window-system
. (Se
você quiser login pelo console, desabilite o xdm
como descrito em
"Deixe-me desabilitar o X na
inicialização !", Seção 8.1.4.)
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ção de 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 no vt8 conectado a localhost:1 com modo 16 bpp
Os argumentos dados depois de -- são para o servidor X.
Note que, ao usar um script ~/.xserverrc
para personalizar a
inicialização do servidor X, certifique-se de fazer exec para o
servidor X real. Se não fizer isso, o servidor X pode demorar a iniciar e
sair. Por exemplo:
#!/bin/sh exec /usr/bin/X11/X -dpi 100 -nolisten tcp
Para (re-)configurar um servidor XF4,
# dpkg-reconfigure --priority=low xserver-common # dpkg-reconfigure --priority=low xserver-xfree86
gerará o arquivo /etc/X11/XF86Config-4
e configurará o X usando o
script dexconf
.
Para (re-)configurar um servidor XF3, por exemplo, para ATI mach64,
# dpkg-reconfigure --priority=low xserver-common-v3 # dpkg-reconfigure --priority=low xserver-mach64
gerará o arquivo /etc/X11/XF86Config
e configurará o X usando o
script xf86config-v3
.
No Woody, para adicionar personalizações do usuário ao arquivo
/etc/X11/XF86Config-4
, não edite o arquivo de configuração
entre o texto:
### BEGIN DEBCONF SECTION [snip] ### END DEBCONF SECTION
Ao invés disso, adicione as personalizações antes do texto. Por exemplo, para usar um dispositivo de vídeo personalizado, adicione alguma coisa modificando o seguinte texto no início do arquivo:
Section "Device" Identifier "Custom Device" Driver "ati" Option "NoAccel" EndSection Section "Screen" Identifier "Custom Screen" Device "Custom Device" Monitor "Generic Monitor" DefaultDepth 24 Subsection "Display" Depth 8 Modes "1280x960" "1152x864" "1024x768" "800x600" "640x480" EndSubsection Subsection "Display" Depth 16 Modes "1280x960" "1152x864" "1024x768" "800x600" "640x480" EndSubsection Subsection "Display" Depth 24 Modes "1280x960" "1152x864" "1024x768" "800x600" "640x480" EndSubsection EndSection Section "ServerLayout" Identifier "Custom" Screen "Custom Screen" InputDevice "Generic Keyboard" "CoreKeyboard" InputDevice "Configured Mouse" "CorePointer" EndSection
No Sarge (testing no momento em que escrevo), se você quiser
manter as personalizações do usuário no arquivo
/etc/X11/XF86Config
ao atualizar, execute os seguintes comandos
como root:
# cp /etc/X11/XF86Config-4 /etc/X11/XF86Config-4.custom # md5sum /etc/X11/XF86Config-4 > /var/lib/xfree86/XF86Config-4.md5sum # dpkg-reconfigure xserver-xfree86
Para obter fontes menos feias, você precisa editar o
/etc/X11/XF86Config-4
como descrito em Fontes
TrueType no X, Seção 9.4.13.
Por favor, verifique também as outras partes de sua configuração do X. Ajustes ruins de monitor podem ser uma dor de cabeça até pior que fontes ruins, então certifique-se de que sua taxa de atualização é tão alta quanto seu monitor pode suportar (85 Hz é ótimo, 75 Hz está bom, 60 Hz é horrível.).
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ões X personalizadas, Seção
9.4.5.1, isso substitui tudo que a execução normal de Xsession faz ao
iniciar a partir de startx
. Use o ~/.xsession
ao
invés disso e use essa alternativa apenas como último recurso. Veja
xsetroot(1x)
, xset(1x)
e Recursos do X, Seção 9.4.10.
Uma sessão X (servidor X + cliente X) pode ser iniciada por:
startx
: comando de script para xinit
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
:
Daemons gerenciadores 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 como em "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
os gerenciadores de sessão do GNOME e KDE instalados, substitua o
/etc/X11/Xsession.d/50xfree86-common_determine-startup
com o anexo
no segundo relatório de bug em http://bugs.debian.org/168347
(Eu espero que ele seja incluído logo.) e edite o
/etc/X11/Xsession.options
como a seguir para desabilitar o
gerenciador de sessão X:
# /etc/X11/Xsession.options # # opções de configuração para /etc/X11/Xsession # Veja Xsession.options(5) para uma explicação das opções disponíveis. # Padrão habilitado allow-failsafe allow-user-resources allow-user-xsession use-ssh-agent # Padrão desabilitado (habilite-os descomentando) do-not-use-x-session-manager #do-not-use-x-window-manager
Sem a modificação no sistema mencionada acima, gnome-session
e
kdebase
são os pacotes contendo esses gerenciadores de sessão X.
Sua remoção permite que o gerenciador de janelas X seja um padrão. (Yack,
alguma idéia melhor?)
Em um sistema onde /etc/X11/Xsession.options
contém uma linha
allow-user-xsession sem caracteres precedendo, qualquer usuário
que defina um ~/.xsession
ou ~/.Xsession
poderá
personalizar a ação de /etc/X11/Xsession
.
O último comando no arquivo ~/.xsession
deve usar a forma
exec algum-gerenciador-de-janelas/sessão para iniciar
seu gerenciador de janelas/sessão X.
Um bom exemplo de um script ~/.xsession
é dado em
/usr/share/doc/xfree86-common/examples/xsession.gz
.
Eu uso isso para definir o gerenciador de janelas acesso à tela e idioma de suporte para cada conta de usuário. Veja Iniciando uma sessão X para um usuário, Seção 9.4.5.2, Obtendo root no X, Seção 9.4.12, e Exemplo para um sistema X window multi-idiomas, Seção 9.7.9.
Se você desejar ter vários programas clientes X iniciados automaticamente, veja
os exemplos Clientes X, Seção 9.4.4 e invoque-os a
partir do arquivo ~/.xsession
ao invés do arquivo
~/.xinitrc
.
Recursos X específicos do usuário podem ser definidos em
~/.Xresources
. Veja Recursos do X, Seção
9.4.10.
Mapas de teclado e funções dos botões do apontador personalizados para o usuário no X também podem ser especificados no script de inicialização do usuário. Veja Mapas de teclado e funções de botões do apontador no X, Seção 9.4.11.
Seguindo o princípio descrito em Sessões X
personalizadas, Seção 9.4.5.1, um gerenciador de sessão/janelas X
específico do usuário pode ser ativado instalando o pacote indicado e definindo
o conteúdo no final do arquivo ~/.xsession
como a seguir. (Eu
gosto do blackbox
/fluxbox
por seu estilo simples e
pela alta velocidade.):
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 ou 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 aptitude
,
lhe dá melhores opções de software que simplesmente instalá-los com o
apt-get
.
Se você quiser login de console, certifique-se de desabilitar gerenciadores de
sessão como kdm
, gdm
, e wdm
, que podem
ser inseridos pelas dependências, como descrito em "Deixe-me desabilitar o X na
inicialização !", Seção 8.1.4.
Se você quiser ter o GNOME como padrão do sistema sobre o KDE, não esqueça de
configurar x-session-manager
como em Comandos alternativos, Seção
6.5.3.
Devido a conexão com soquete TCP/IP remota sem encriptação ser sujeita a um
"eavesdropping attack", a configuração padrão para o X em versões
recentes do Debian desabilita o soquete TCP/IP. Pense em usar o
ssh
para uma conexão remota do X (veja Conectando a um servidor X remoto – ssh
,
Seção 9.4.8).
O método descrito aqui não é encorajado a menos que se esteja em um ambiente muito seguro atrás de um bom sistema de firewall com apenas usuários conhecidos presentes. Use o seguinte comando para verificar a configuração atual de seu servidor X para o soquete TCP/IP:
# find /etc/X11 -type f -print0 | xargs -0 grep nolisten /etc/X11/xinit/xserverrc:exec /usr/bin/X11/X -dpi 100 -nolisten tcp
Remova -nolisten para restaurar escuta TCP/IP no servidor X.
xhost
O xhost
permite acesso baseado em nomes de máquinas. Isso é muito
inseguro. O seguinte desabilitará a verificação de máquina e permitirá
conexões de qualquer lugar se uma conexão com soquete TCP/IP for permitida
(veja Usando o X sobre TCP/IP, Seção 9.4.6):
$ xhost +
Você pode reabilitar a verificação de máquina com:
$ xhost -
O xhost
não distingue entre diferentes usuários na máquina remota.
Além disso, nomes de máquinas (endereços) podem ser falsificados.
Esses método precisa ser evitado mesmo com o critério de máquina mais
restritivo se você estiver em uma rede não confiável (por exemplo com uma
conexão de acesso discado PPP à Internet). Veja xhost(1x)
.
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. Os padrões gerais do sistema para os recursos
do X são armazenados em /etc/X11/Xresources/*
e os padrões de
aplicações deles são armazenados em /etc/X11/app-defaults/*
. Use
esses ajustes como pontos de partida.
Aqui estão algumas configurações úteis para adicionar ao seu arquivo
~/.Xresources
:
! Define a fonte para uma mais legível 9x15 XTerm*font: 9x15 ! Exibe uma barra de rolagem XTerm*scrollBar: true ! Define o tamanho do buffer para 1000 linhas XTerm*saveLines: 1000 ! Tela grande do kterm KTerm*VT100*fontList: -*-fixed-medium-r-normal--24-*,\ -*-gothic-medium-r-normal--24-*,\ -*-mincho-medium-r-normal--24-*
Para fazer com que essas configurações tenham efeito imediato, carregue-as na base de dados com o comando:
xrdb -merge ~/.Xresources
Veja xrdb(1x)
.
O programa xmodmap
é usado para editar e exibir o mapa modificador
do teclado e a tabela de mapa do teclado que são usados pelas aplicações
clientes para converter códigos de tecla de eventos em símbolos de tecla no X.
$ xmodmap -pm ... exibe o mapa modificador atual $ xmodmap -pk | pager ... exibe a tabela do mapa atual $ xmodmap -e "pointer = 3 2 1" # define mouse para a mão esquerda $ xmodmap ~/.xmodmaprc # configura o teclado como em ~/.xmodmaprc
Ele geralmente é executado a partir do script de inicialização de sessão do
usuário, ~/.xsession
.
Para obter o código de tecla (keycode), execute xev
no X e pressione teclas. Para obter o significado do símbolo de
tecla (keysym), procure na definição MACRO no arquivo
/usr/include/X11/keysymdef.h
. Todas as expressões
#define nesse arquivo são nomeadas como XK_
antecedendo os nomes de símbolo de tecla.
Veja xmodmap(1x)
.
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).
Primeiro configure a estrutura de suporte a fontes:
x-ttcidfont-conf
e defoma
. Isso
automatiza a geração de arquivos fonts.scale
e
fonts.dir
.
# apt-get install x-ttcidfont-conf
/etc/X11/XF86Config-4
em Section
"Files" assim:
Section "Files" FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" FontPath "/usr/share/fonts/truetype" FontPath "/usr/lib/X11/fonts/CID" FontPath "/usr/lib/X11/fonts/Speedo" FontPath "/usr/lib/X11/fonts/misc" FontPath "/usr/lib/X11/fonts/cyrillic" FontPath "/usr/lib/X11/fonts/100dpi:unscaled" FontPath "/usr/lib/X11/fonts/75dpi:unscaled" FontPath "/usr/lib/X11/fonts/Type1" EndSection
A primeira linha ajustará o XFree86 para usar quaisquer fontes TrueType que você instalar a partir de pacotes Debian. A entrada de fonte Type1 é movida para baixo já que o XFree86 faz um trabalho um tanto podbre de renderização de fontes Type1. O truque de :unscaled para fontes bitmap não deve mais ser necessário para o novo XF4 mas eu incluí aqui só por segurança.
Para preservar as alterações manuais feitas no arquivo
/etc/X11/XF86Config-4
, siga as instruções em Configurando o servidor X manualmente, Seção
9.4.3.3.
Então instale pacotes de fontes DFSG:
ttf-bitstream-vera
: Um conjunto de fontes TrueType de alta
qualidade criadas pela Bitstream, Inc. [33]
ttf-freefont
: Um conjunto de fontes TrueType livres de alta
qualidade cobrindo o conjunto de caracteres UCS.
ttf-thryomanes
: Uma fonte TrueType Unicode cobrindo Latin, Grego,
Cirílico e IPA.
tfm-arphic-bsmi00lp
: Fonte TrueType Arphic Chinês "AR PL
Mingti2L Big5" dado métrico fonte TeX
tfm-arphic-bkai00mp
: Fonte TrueType Arphic Chinês "AR PL
KaitiM Big5" dado métrico fonte TeX
tfm-arphic-gbsn00lp
: Fonte TrueType Arphic Chinês "AR PL
SungtiL GB" dado métrico fonte TeX
tfm-arphic-gkai00mp
: Fonte TrueType Arphic Chinês "AR PL
KaitiM GB" dado métrico fonte TeX
ttf-baekmuk
: Séries de fontes TrueType Baekmuk Coreano
hbf-jfs56
: Fonte bitmap Jianti Fangsong 56x56 Chinês (GB2312) para
CJK
hbf-cns40-b5
: Fonte bitmap Fanti Song 40x40 Chinês (Big5) para CJK
hbf-kanji48
: Fonte bitmap Kanji 48x48 Japonês (JIS X-0208) para
CJK
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)
[34]
Você terá uma seleção realmente boa de fontes TrueType sob o custo de contaminar seu sistema Livre com fontes não-Livres.
Todas esses pacotes de fontes no Debian devem funcionar sem nenhum esforço e aparecer disponíveis para todos os programas X que usam o sistema de fontes "principal" regular. Isso inclui coisas como Xterm, Emacs e muitas outras aplicações não-KDE e não-Gnome.
Agora, execute o xfontsel
e selecione quaisquer fontes TrueType no
menu fndry, você deve ser capaz de ver muitas entradas não acinzentadas no menu
"fmly".
Para o KDE2.2 e GNOME1.4 (com libgdkxft0, que é um hack para fazer o GTK 1.2
renderizar fontes com anti-alias), você precisa configurar Xft1, também. Xft1
está altamente desatualizado, e basicamente só é usado pelo GNOME1.4 e KDE2.2.
Edite o arquivo /etc/X11/XftConfig
e adicione uma linha como
dir "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
antes das outras linhas dir. [35] Para o GNOME2 e KDE3 (pós edição do Sarge), você precisa
configurar o fontconfig
que o Xft2 usa para encontrar fontes. [36] Você não deve precisar
instalar nada extra para isso, já que todos os pacotes que usam
fontconfig
já irão Depender dele (indiretamente).
Primeiro, veja em /etc/fonts/fonts.conf
. Deve haver uma linha
como a abaixo. Se não houver, abra o /etc/fonts/local.conf
e
adicione essa
<dir>/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType</dir>
logo abaixo da linha <fontconfig>.
O Fontconfig
deve pegá-las imediatamente, e "fc-list"
deve listar suas novas fontes. Outro recurso elegante do
fontconfig
é que você pode simplesmente colocar fontes em
~./fonts/
e todos os seus programas que usam
fontconfig
terão acesso a elas imediatamente.
Se você instalar manualmente um novo conjunto de fontes TrueType enquanto estiver no X sem usar pacote Debian, execute
# xset fp rehash
para fazer com que o XFree86 olhe os conteúdos daquele diretório novamente e pegue as novas.
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
É necessária a entrada non-US no arquivo /etc/apt/source.list
. O
arquivo /etc/ssh/sshd_not_to_be_run
não pode estar presente se
desejar-se executar o servidor OpenSSH.
O SSH tem dois protocolos de autenticação:
.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 usam 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 arquivo /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/identity.pub | ssh usuario1@remoto \ "cat - >>.ssh/authorized_keys" ... $ ssh-keygen -t rsa # PubkeyAuthentication: chave RSA para SSH2 $ cat .ssh/id_rsa.pub | ssh usuario1@remoto \ "cat - >>.ssh/authorized_keys" ... $ ssh-keygen -t dsa # PubkeyAuthentication: chave DSA para SSH2 $ cat .ssh/id_dsa.pub | ssh usuario1@remoto \ "cat - >>.ssh/authorized_keys"
Pode-se mudar a frase-senha mais tarde com "ssh-keygen -p". Não esqueça de verificar as configurações testando a conexão. Em caso de qualquer problema, use "ssh -v".
Você pode adicionar opções para as entradas em authorized_keys
para limitar as máquinas e executar comandos específicos. Veja
sshd(8)
para obter mais detalhes.
Note que SSH2 tem HostbasedAuthentication. Para isso funcionar,
você precisa ajustar as configurações de HostbasedAuthentication
para yes em ambos os /etc/ssh/sshd_config
na máquina
servidor e /etc/ssh/ssh_config
ou $HOME/.ssh/config
na máquina cliente.
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".
ssh-agent
É mais seguro proteger sua chave de autenticação SSH com uma frase senha. Se isso não foi configurado, use ssh-keygen -p para configurar.
Coloque sua chave pública (por exemplo, ~/.ssh/id_rsa.pub
) no
~/.ssh/authorized_keys
em um host remoto usando conexão baseada em
senha como descrito em Conectando com menos senhas –
RSA, Seção 9.5.3.
$ ssh-agent bash # ou ao invés, execute o programa zsh/tcsh/pdksh. $ ssh-add ~/.ssh/id_rsa Enter passphrase for /home/osamu/.ssh/id_rsa: Identity added: /home/osamu/.ssh/id_rsa (/home/osamu/.ssh/id_rsa) $ scp foo usuario@host.remoto:foo ... nenhuma frase senha necessária a partir daqui :-) $^D ... terminando sessão ssh-agent
Para o servidor X, scripts de inicialização normais do Debian executam
ssh-agent
como processo pai. Então você só precisa executar
ssh-add
um vez.
Para mais detalhes, leia ssh-agent(1)
e ssh-add(1)
.
Se você tiver problemas, verifique as permissões de arquivos de configuração e
execute ssh
com a opção "-v".
Use a opção "-P" se você for root e tiver problemas com um firewall; isso evita o uso das portas 1–1023 do servidor.
Se as conexões ssh
para um sistema remoto pararem subitamente de
funcionar, isso pode ser resultado de manutenção pelo administrador do sistema,
normalmente uma mudança na host_key
durante a manutenção do
sistema. Depois de certificar-se de que é esse o caso e que ninguém está
tentando simular o sistema remoto com algum hack esperto, pode-se conseguir uma
conexão novamente removendo a entrada host_key
de
$HOME/.ssh/known_hosts
na máquina local.
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 da capacidade de relay de um MTA como no caso de um sistema satélite como um PC laptop, você pode considerar usar um desses pacotes leves:
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
Se você está executando o exim
em um sistema que está conectado
através dos serviços voltados ao consumidor, por favor, certifique-se de enviar
suas mensagens de saída através de um smarthost oferecido por seu ISP ou alguns
outros. [37] Há algumas
boas razões:
As únicas exceções concebíveis são:
Para usar o exim
como seu MTA, configure o seguinte:
/etc/exim/exim.conf "eximconfig" para criar e editar /etc/inetd.conf comente smtp para executar o exim como daemon /etc/email-addresses Adicione listas de endereços fontes falsos verifique filtros usando exim -brw, -bf, -bF, -bV, ... etc.
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á vários 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 codificação, incluindo UTF-8, e suporta todas as fontes. A lista inclui não apenas todas as fontes de 8 bits mas também fontes de 16 bits tais como Chinês, Japonês, ou Coreano. O método de entrada de caracter multi-byte é suportado pelo mecanismo Métodos de entrada X alternativos, Seção 9.7.10. Veja Exemplo para um sistema X window multi-idiomas, Seção 9.7.9 e Exemplo para UTF-8 no X, Seção 9.7.12.
A exibição código Japonês EUC também é disponível em console gráfico (S)VGA
através do pacote kon2
. Há um novo display Japonês alternativo,
jfbterm
que usa um console frame-buffer, também. Nesses ambientes
de console, o método de entrada Japonês precisa ser fornecido pela aplicação.
Use o pacote egg
para o Emacs e use o pacote jvim
"japonesado" para o ambiente Vim.
A instalação de fontes não Unicode no X ajudará na exibição de documentos com qualquer codificação no X. Então não se preocupe muito com a codificação das fontes.
Existem traduções para muitas mensagens e documentos que são exibidos no sistema Debian, tais como mensagens de erro, saída de programa padrão, menus, e páginas de manual. Atualmente, existe suporte para páginas de manual em Alemão, Espanhol, Finlandês, Francês, Húngaro, Italiano, Japonês, Coreano, Polonês, Português, Chinês e Russo através dos pacotes manpages-LANG (onde LANG é uma lista separada por vírgulas de códigos de país ISO de duas letras. Use apt-cache search manpages-|less para obter uma lista das páginas de manual Unix disponíveis.)
Para acessar uma página de manual NLS, o usuário precisa definir a variável de
ambiente LC_MESSAGES para o valor apropriado. Por exemplo, no caso das páginas
de manual da língua italiana, LC_MESSAGES precisa ser configurada para
it. O programa man
então procurará por páginas de
manual italianas sob /usr/share/man/it/
.
O Debian suporta a tecnologia locale. Locale é um mecanismo que permite que um programa forneça saída apropriada e funcionalidade de acordo com as convenções locais como conjunto de caracteres, formato de data e hora, símbolo da moeda, e outros. Ele usa variáveis de ambiente para determinar o comportamento apropriado. Por exemplo, considerando que você tenha ambos os locales Inglês Americano e Alemão instalados em seu sistema, as mensagens de erro de muitos programas podem ser multi-idiomas:
$ LANG="en_US" cat foo cat: foo: No such file or directory $ LANG="de_DE" cat foo cat: foo: Datei oder Verzeichnis nicht gefunden
A Glibc oferece suporte a essa funcionalidade como uma biblioteca. Veja
locale(7)
.
A descrição completa de locale consiste de 3 partes: xx_YY.ZZZZ.
Para códigos de idiomas e códigos de países, veja a descrição pertinente no info gettext.
Por favor, note que essa parte de codeset pode ser normalizada internamente para obter compatibilidade sobre plataformas removendo todos os - e convertendo todos os caracteres para minúsculas. Codesets típicos são:
Sobre o significado de jargões básicos de sistema de codificação:
ISO-8859-?, EUC, ISO-10646-1, UCS-2, UCS-4, e UTF-8 compartilham o mesmo código com ASCII para os caracteres de 7 bit. EUC ou Shift-JIS usam caracteres de bit alto (0x80-0xff) para indicar que parte da codificação é 16 bit. UTF-8 também usa caracteres de bit alto (0x80-0xff) para indicar bytes de seqüência de caracter de não 7 bit e essa é a forma mais inteligente de um sistema de codificação lidar com caracteres não-ASCII.
Por favor, note a diferença de ordem de byte da implementação Unicode:
Para mais detalhes veja Introdução a
i18n
.
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 Ativando suporte a locale, Seção 9.7.4.)
O suporte de locale para o padrão internacional de data de
yyyy-mm-dd (formato de data ISO 8601) é fornecido pelo locale
chamado en_DK, "Inglês na Dinamarca", o que é um pouco
de brincadeira :-) Isso parece funcionar apenas em tela de console para o
ls
.
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 Localizando o teclado, Seção 9.7.1.1; adicione as
páginas de manual em francês instalando manpages-fr
. A tecla
Alt-direito nos Estados Unidos é chamada Alt-Gr na Europa. Pressioná-lo junto
com algumas teclas cria vários caracteres acentuados e caracteres especiais.
Por exemplo, Alt-Gr+E cria um sinal de Euro.
Muitas línguas da Europa ocidental podem ser configuradas similarmente.
Veja o Debian Euro
HOWTO
para adicionar suporte para a nova moeda Euro e Utiliser et
configurer Debian pour le français
para mais detalhes em francês.
Vamos configurar um sistema X window multi-idioma que suporta simultaneamente japonês, inglês, alemão e francês com as codificações EUC, UTF-8 e ISO-8859-1 em diferentes consoles.
Eu mostrarei a você uma personalização usando o sistema de menus do Debian.
Veja os detalhes do sistema de menus do Debian em /usr/share/doc/menu/html/index.html
.
Também criarei um atalho para o navegador web mozilla
nesse
exemplo. [38]
canna
– Servidor local (licença "cerveja grátis"
(free-beer)), 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)
xterm
– X (para ISO-8859-1 and UTF-8),
kterm
– X (para Japonês EUC), e
mlterm
– X (multi-idioma).
~/.xsession
que defina um ambiente X específico do usuário
como descrito em Sessões X personalizadas, Seção
9.4.5.1 (para todos):
#!/bin/sh # Isso faz o X funcionar quando uso su para root. if [ -z "$XAUTHORITY" ]; then XAUTHORITY=$HOME/.Xauthority export XAUTHORITY fi # Definir ambiente específico através do sistema de menus debian. # Redefinir locale unset LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES unset LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT unset LC_IDENTIFICATION LC_ALL LANG LANGUAGE PAGER # ajustar padrão de locale no X LANG=C # exportar locale export LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES export LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT export LC_IDENTIFICATION LC_ALL LANG LANGUAGE PAGER ### # activar método de entrada para japonês com kinput2 kinput2 & XMODIFIERS="@im=kinput2" export XMODIFIERS # Sobre o gerenciador de janelas blackbox (leve) exec blackbox #exec xfwm #exec wmaker
~/.bash_profile
para consoles Linux (para
todos).
~/.bashrc
, se existiram (para
todos).
/etc/menu/
(para todos).
/etc/menu/xterm-local
: (adicione novas entradas ao menu) [39]
?package(xterm):\ needs=x11\ section=XShells\ longtitle="XTerm: emulador de terminal (en_US.ISO-8859-1)"\ title="XTerm (en_US.ISO-8859-1)"\ command="sh -c 'LC_ALL=en_US.ISO-8859-1 xterm'" ?package(xterm):\ needs=x11\ section=XShells\ longtitle="XTerm: emulador de terminal (de_DE.ISO-8859-1)"\ title="XTerm (de_DE.ISO-8859-1)"\ command="sh -c 'LC_ALL=de_DE.ISO-8859-1 xterm -T xterm-de'" ?package(xterm):\ needs=x11\ section=XShells\ longtitle="XTerm: emulador de terminal para o X com suporte Unicode (Japonês)"\ title="UXTerm (ja_JP.UTF-8)"\ command="sh -c 'LC_ALL=ja_JP.UTF-8 uxterm'"
/etc/menu/kterm
: (sobrepõe o padrão do sistema) [40]
?package(kterm):\ needs="x11"\ section="XShells"\ command="sh -c 'LC_ALL=ja_JP.eucJP PAGER=w3m /usr/X11R6/bin/kterm -xim'" \ title="Kanji Terminal" ?package(kterm):\ needs="x11"\ section="XShells"\ command="sh -c 'LANG=ja_JP.eucJP \ LC_MESSAGES=en_US.ISO-8859-1 PAGER=w3m /usr/X11R6/bin/kterm -xim'" \ title="Terminal Kanji (bilíngüe)"
/etc/menu/mozilla-local
: (adicionar um novo atalho) [41]
?package(mozilla-browser):needs="x11" section="/" \ title=" Navegador Mozilla" command="mozilla-1.5" hints="Navegadores Web" \ icon=/usr/share/pixmaps/mozilla.xpm
update-menus
a partir da conta root.
~/.muttrc
(para japonês):
# Suporte a UTF-8 não é popular no ambiente EMACS japonês # codificação de 7-bit iso-2022-jp é mais fácil para todos. # ordem de codificação padrão = us-ascii --> iso-8859-1 --> iso-2022-jp set send_charset="us-ascii:iso-8859-1:iso-2022-jp" set allow_8bit=no
kinput2
para aplicações X (para japonês)
~/.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
).
xdm
, gdm
, kdm
,
wdm
, ...) (para todos).
kterm
(para japonês). (Emacs parece ser a
plataforma mais popular, apesar de eu não usá-lo.)
Para outros suportes a idioma CJK, veja as seções seguintes e as páginas da SuSE para
CJK
.
Há muitos pacotes de suporte de métodos de entrada do X alternativos disponíveis:
Idioma LC_CTYPE serv. XIM XMODIFIERS Tecla início Japonês ja_JP* kinput2 "@im=kinput2" Shift-Espaço Coreano ko_KR* ami "@im=Ami" Shift-Espaço Chinês(T) zh_TW.Big5 xcin "@im=xcin-zh_TW.big5" Ctrl-Espaço Chinês(S) zh_CN.GB2312 xcin "@im=xcin-zh_CN.GB2312" Ctrl-Espaço
O método de entrada japonês kinput2
é oferecido pelos pacotes como
kinput2-canna-wnn
, kinput2-canna
, e
kinput2-wnn
. O japonês precisa de um servidor de dicionário tal
como canna
e freewn-jserver
para ser prático.
Há muitos consoles que suportam codificações de 8 bits simples quando os pacotes de fonte pertinentes são instalados:
xterm
– O emulador de terminal X
gnome-terminal
– xterm
para o Gnome
konsole
– xterm
para o KDE
rxvt
– terminal VT102 (mais leve)
aterm
– terminal VT102 para o WM Afterstep
eterm
– terminal VT102 para o WM Enlightenment
wterm
– terminal VT102 para o WM WindowMaker
Os suportes de codificação multi-byte dos consoles X são fornecidos pelo
xterm
através da codificação UTF-8 (Exemplo
para UTF-8 no X, Seção 9.7.12). Outros suportes de codificação
tradicionais estão em progresso (em 2003). Os seguintes pacotes oferecem
suportes a codificações tradicionais:
aterm-ml
– Multi-idioma
kterm
– Multi-idioma (Japonês, ...)
rxvt-ml
– Multi-idioma
wterm-ml
– Multi-idioma
cxterm-big5
– Chinês (Trad., Big5)
cxterm-gb
– Chinês (Simp., GB)
cxterm-ks
– Chinês (KS)
cxterm-jis
– Japonês
hanterm-classic
– Coreano (Hangul)
hanterm-xf
– Coreano (Hangul)
hztty
– Chinês (GB, Big5, zW/HZ)
Para o kterm
(e possivelmente outros), você pode desejar ativar
XIM através do menu depois da ação do mouse Ctrl-click-botão_do_meio.
O suporte a UTF-8 para o emulador de terminal X é fornecido pelo programa
uxterm
no pacote xterm
para o XFree86 4.x. Ele
habilita suporte para todos os idiomas. Ele é um wrapper sobre o programa
xterm(1)
que invoca esse último com a classe de recursos X
"UXterm" definida.
Por exemplo, para habilitar uma bela exibição grande de caracteres de inglês,
russo, japonês, chinês e coreano, adicione o seguinte ao seu arquivo
~/.Xresources
depois de instalar todas as fontes pertinentes:
! definindo fonte grande UXTerm*font: -misc-fixed-medium-r-normal-*-18-120-100-100-c-90-iso10646-1 ! Usar XIM para Japonês *inputMethod: kinput2
Então execute xrdb -merge ~/.Xresources para atualizar os recursos X como descrito em Recursos do X, Seção 9.4.10.
Entretanto, muitos dos pacotes de programas de console populares como o
vim
, mutt
, e emacs
tornaram-se
compatíveis com UTF-8 recentemente (Woody-Sarge). Programa como o
mc
ainda não é compatível com UTF-8 mas é simplesmente 8 bits
limpos. Se você está editando com a parte de 7 bit ASCII de um arquivo de
codificação desconhecida ou mista, é mais seguro usar o editor de 8 bits limpos
sem locale.
Veja The Unicode
HOWTO
.
O suporte UTF-8 em um console FB é fornecido pelo bterm
e é usado
no debian-installer
.
Quando você estiver configurando o sistema para um ambiente de idioma
nativo pela primeira vez, por favor, pense em usar o
tasksel
ou o aptitude
para determinar quais pacotes
são selecionados ao escolher a tarefa de ambiente de idioma correspondente. É
útil fazer escolha de pacote mesmo para a configuração multi-idioma. Se você
encontrar algum conflito de dependência de pacote durante a instalação de seu
sistema configurado cuidadosamente, evite instalar qualquer software que
conflite com o sistema existente. Você pode ter que usar o
update-alternative
para obter o estado original novamente para
alguns comandos, já que um recém instalado pode ter uma prioridade mais alta
que os já existentes.
Os maiores e mais novos programas estão usando a glibc 2.2 e muitas vezes são
internacionalizados. Então uma versão especialmente localizada como o
jvim
para o Vim não deve ser necessária já que sua funcionalidade
é oferecida pela versão 6.0 do vim
no X. Na verdade, ainda está
um pouco grosseiro. Já que o jvim
tem uma versão compilada com
suporte de método de entrada japonês direto (canna
) mesmo no
console e resolve muitos outros problemas específicos do Japonês de forma
madura, você pode ainda querê-lo :-)
Os programas podem precisar ter configuração além do locale para
se ter um ambiente de trabalho confortável. O pacote language-env
e seu comando set-language-env
facilita enormemente esse processo.
Veja também o documento de internacionalização, Introdução a
i18n
. Ele é dedicado aos desenvolvedores mas também é útil para os
administradores de sistema.
Referência Debian
CVS, Seg Abr 3 22:58:08 UTC 2005osamu@debian.org
pormenese@uol.com.br