# Os Arquivos que o &kdm; Usa para Configuração

Este capítulo documenta os arquivos que controlam o comportamento do &kdm;. Uma parte deste comportamento pode também ser controlada pelo módulo do &kcontrol;, mas nem tudo.

## &kdmrc; - O arquivo principal de configuração do &kdm;

O formato básico deste arquivo é no estilo-INI. Opções são pares de valor/chave, colocadas em seções. Tudo no arquivo é sensível à caixa. Erros de sitaxe e chaves/seções desconhecidas fazem com que o &kdm; envie mensagens de erros não fatais.

Linhas iniciando com `#` são comentários; linhas vazias são igualmente ignoradas.

Seções são indicadas com `[`Nome da Seção`]`.

Você pode configurar cada terminal X individualmente.

Cada terminal possui um nome específico, que é composto pelo nome de uma máquina (que é vazio para os terminais locais indicados em `StaticServers` ou em `ReserveServers`), um sinal de dois pontos (:) e um número de terminal. Adicionalmente, um terminal pertence a uma classe específica (que poderá ser ignorada na maioria dos casos).

Seções com configurações específicas por terminal possuem a sintaxe na forma`[X-` máquina [ `:` número [ `_` classe ] ] `-` sub-seção `]`

Todas as seções com a mesma sub-seção constituem uma classe de seção.

Você pode usar o coringa `*` (corresponde a qualquer um) para a máquina, número e classe. Você pode omitir componentes da sintaxe; eles então serão assumidos como *. A parte máquina deve ter uma especificação de domínio como .dominio.br.

A partir de qual seção uma configuração é obtida é determinado pelas seguintes regras:

- Uma correspondência exata tem precedência sobre uma correspondência parcial (para a parte máquina), que tem precedência sobre um coringa (`+` tendo precedência sobre o `*`).

- A precedência diminui da esquerda para direita para as correspondências exatas.

- Exemplo: nome do terminal minhamaquina.foo:0, classe dpy

  - [X-minhamaquina.foo:0_dpy] precede

  - [X-minhamaquina.foo:0_*] (o mesmo que [X-minhamaquina.foo:0]) que precede

  - [X-minhamaquina.foo:*_dpy] que precede

  - [X-minhamaquina.foo:*_*] (o mesmo que [X-minhamaquina.foo]) que precede

  - [X-.foo:*_*] (o mesmo que [X-.foo]) que precede

  - [X-+:0_dpy] que precede

  - [X-*:0_dpy] que precede

  - [X-*:0_*] (o mesmo que [X-*:0]) que precede

  - [X-*:*_*] (o mesmo que [X-*]).

  - Estas seções não correspondem a este terminal:

    [X-suamáquina], [X-minhamáquina.foo:0_dec], [X-*:1], [X-:*]

Seções comuns são [X-*] (todos os terminais), [X-:*] (todos os terminais locais) e [X-:0] (o primeiro terminal local).

O formato para todas as chaves é ``chave` `=` `valor``. Chaves somente são válidas na classe de seção para a qual elas foram definidas. Algumas chaves não se aplicam a determinados terminais, sendo neste caso ignoradas.

Se uma configuração não for encontrada em nenhuma seção correspondente, o padrão é usado.

Os caracteres especiais que necessitam ser 'escapados': espaços anteriores e posteriores (`\s`), tabulações (`\t`), fim-de-linha (`\n`), mudança de linha (`\r`) e a própria barra invertida (`\\`).

Nas listas, os campos são separados por vírgulas, sem espaços no meio.

Alguns textos de comando estão sujeitos à repartição de palavras simplificada do tipo do 'sh': as aspas simples (`'`) e aspas duplas (`"`) possuem o significado normal; a barra invertida 'escapa' tudo (não apenas os caracteres especiais). Lembre-se que as barras invertidas necessitam ser duplicadas, devido aos dois níveis de escape.

O &kdmrc; original é intensamente comentado. Todos os comentários serão perdidos se você mudar este arquivo com a interface do kcontrol.

### A seção [General] do &kdmrc;

Esta seção contém opções globais que não cabem em nenhuma outra seção específica.

`ConfigVersion`

  Esta opção existe somente para fins de atualizações automáticas. Não mude-a, ou você pode interferir com atualizações futuras e isto pode resultar numa falha na execução do &kdm;.

`StaticServers`

  Uma lista dos terminais (&X-Server;s) gerenciados permanentemente pelo &kdm;. Os terminais com um nome de máquina são ambientes estrangeiros que se pressupõe que já estejam em execução, enquanto os outros são terminais locais, para os quais o &kdm; inicia o seu próprio &X-Server;; veja o `ServerCmd`. Cada terminal poderá pertencer a uma determinada classe; adicione-a ao nome do terminal, separada por um sublinhado. Veja os detalhes em .

  O padrão é :0.

`ReserveServers`

  Uma lista de terminais sob demanda. Veja a sintaxe no `StaticServers`.

  Vazio por padrão.

`ServerVTs`

  Lista dos Terminais Virtuais a serem alocados para os &X-Server;s. Para números negativos o valor absoluto é usado, e o VT (do inglês, Terminal Virtual) será alocado somente se o kernel disser que ele está livre. Se o &kdm; exaurir esta lista, ele alocará VTs livres maiores que o valor absoluto da última entrada nesta lista. Atualmente somente para o Linux.

  Vazio por padrão.

`ConsoleTTYs`

  Esta opção é para os sistemas operacionais (SOs) com suporte para terminais virtuais (VTs), tanto pelo &kdm; como pelos SOs em si. Atualmente, isto só se aplica ao Linux.

  Quando o &kdm; muda para o modo de console, ele começa a monitorar todas as linhas de TTY aqui indicadas (sem o `/dev/` inicial). Se nenhuma delas ficar ativa durante algum tempo, o &kdm; volta outra vez para o terminal do X.

  Vazio por padrão.

`PidFile`

  O nome do arquivo especificado será criado para conter uma representação ASCII do ID do processo principal do &kdm;; o PID não será armazenado se o nome do arquivo estiver vazio.

  Vazio por padrão.

`LockPidFile`

  Esta opção controla se o &kdm; usa o travamento de arquivo para manter gerenciadores de terminais múltiplos em execução distintamente.

  O padrão é true.

`AuthDir`

  Isto nomeia um diretório sob o qual o &kdm; armazena os arquivos de autorização do &X-Server; ao inicializar a sessão. O &kdm; espera que o sistema limpe este diretório de arquivos antigos ao reiniciar.

  O arquivo de autorização a ser usado por um terminal em particular pode ser especificado com a opção `AuthFile` em [X-*-Core].

  O padrão é /var/run/xauth.

`AutoRescan`

  Este booleano controla se o &kdm; re-lerá automaticamente seus arquivos de configuração se ele descobrir que eles foram mudados.

  O padrão é true.

`ExportList`

  Variáveis de ambiente adicionais do &kdm; que devem ser passadas para todos os programas que ele executa. `LD_LIBRARY_PATH` e `XCURSOR_THEME` são boas candidatas; caso contrário isto não seria necessário muito freqüentemente.

  Vazio por padrão.

`RandomFile`

  Se o sistema não possui nenhuma fonte randômica como o /dev/urandom (veja `RandomDevice`) e nenhum daemon randômico como o EGD (veja em `PrngdSocket` e `PrngdPort`) em execução, o &kdm; usará seu próprio gerador de números pseudo-randômicos que, dentre outras coisas, verificará sucessivamente as somas das partes deste arquivo (que, obviamente, deve mudar freqüentemente).

  Esta opção não existe em Linux e vários BSDs.

  O padrão é /dev/mem.

`PrngdSocket`

  Se o sistema não possuir nenhuma fonte randômica como o /dev/urandom (veja em `RandomDevice`), lerá dados randômicos a partir de um Daemon Gerador de Números Pseudo-Randômicos, como o EGD (http://egd.sourceforge.net) através deste soquete de domínio UNIX.

  Esta opção não existe em Linux e vários BSDs.

  Vazio por padrão.

`PrngdPort`

  O mesmo que `PrngdSocket`, sendo que somente usa o soquete TCP socket na máquina local.

`RandomDevice`

  O caminho para um dispositivo de caracter que o &kdm; deve ler para obter dados randômicos. Se vazio, significa usar o dispositivo randômico preferencial do sistema se existir um.

  Esta opção não existe em OpenBSD, uma vez que ele usa a função arc4_random em substituição.

  Vazio por padrão.

`FifoDir`

  O diretório onde os comandos FiFos devem ser criados. Deixe isto vazio para desabilitá-los.

  O padrão é /var/run/xdmctl.

`FifoGroup`

  A qual grupo o comando global FiFo deve pertencer. Pode ser um nome ou uma ID numérica.

`DataDir`

  O diretório onde o &kdm; deve armazenar dados de trabalho persistentes. Estes dados podem ser por exemplo o usuário anterior que se logou em um terminal em particular.

  O padrão é /var/lib/kdm.

`DmrcDir`

  O diretório onde o &kdm; armazena arquivos de usuários `.dmrc`. Isto somente é necessário se os diretórios pessoais não são legíveis antes do login (como diretórios AFS).

  Vazio por padrão.

### A Seção [Xdmcp] do &kdmrc;

Esta seção contém opções que controlam como o &kdm; manipula requisições &XDMCP;.

`Enable`

  Se o &kdm; deve ouvir as solicitações &XDMCP;.

  O padrão é true.

`Port`

  Isto indica o número da porta UDP que o &kdm; usa para ouvir as requisições do &XDMCP;. A menos que você precise depurar o sistema, deixe isto com seu valor padrão.

  O padrão é 177.

`KeyFile`

  O estilo de autenticação XDM-AUTHENTICATION-1 do &XDMCP; necessita de uma chave privada para ser compartilhada entre o &kdm; e o terminal. Esta opção especifica o arquivo contendo estes valores. Cada entrada no arquivo consiste de um nome de terminal e a chave compartilhada.

  Vazio por padrão.

`Xaccess`

  Para evitar serviço não autorizado do &XDMCP; e para permitir o repasse de requisições IndirectQuery do &XDMCP;, este arquivo contém um banco de dados de nomes de máquinas que terão acesso direto permitido a esta máquina, ou terá uma lista de máquinas das quais consultas devem ser repassadas. O formato deste arquivo é descrito em .

  O padrão é ${`kde_confdir`}/kdm/Xaccess.

`ChoiceTimeout`

  Número de segundos a esperar pela resposta do terminal após o usuário ter selecionado uma máquina a partir do seletor. Se o terminal enviar uma IndirectQuery do &XDMCP; dentro deste tempo, a requisição será repassada para a máquina escolhida. Caso contrário, é considerado que vem de uma nova sessão e o seletor é oferecido novamente.

  O padrão é 15.

`RemoveDomainname`

  Ao processar o nome do terminal para clientes &XDMCP;, o resolvedor de nomes normalmente criará um nome de máquina totalmente qualificado para o terminal. Como isto algumas vezes é confuso, o &kdm; removerá a porção do nome do domínio do nome da máquina se ele for o mesmo da máquina local quando esta opção estiver habilitada.

  O padrão é true.

`SourceAddress`

  Usa o endereço IP numérico da conexão de entrada em máquinas com várias pastas pessoais ao invés do nome da máquina. Use isto para evitar tentar conectar-se em uma interface erra que pode estar desligada no momento da conexão.

  O padrão é false.

`Willing`

  Isto especifica um programa que é executado (como root) quando uma DirectQuery ou BroadcastQuery &XDMCP; é recebida e esta máquina está configurada para oferecer gerenciamento de terminais &XDMCP;. A saída deste programa deve ser exibida na janela do seletor. Se nenhum programa for especificado, o string Requisição de gerenciamento é enviado.

  Vazio por padrão.

### A seção [Shutdown] do &kdmrc;

Esta seção contém opções globais referentes ao desligamento do sistema.

`HaltCmd`

  O comando (sujeito à repartição de palavras) a executar para parar/desligar o sistema.

  O padrão é algo razoável para o sistema em que o &kdm; foi construído, como `/sbin/shutdown `-h` `now``.

`RebootCmd`

  O comando (sujeito à repartição de palavras) a ser executado para reiniciar o sistema.

  O padrão é algo razoável para o sistema em que o &kdm; foi construído, como `/sbin/shutdown `-r` `now``.

`AllowFifo`

  Se alguém pode desligar o sistema através do comando global FiFo.

  O padrão é false.

`AllowFifoNow`

  Se alguém pode abortar sessões ainda existentes ao desligar o sistema através do comando global FiFo.

  Isto não terá efeito a menos que `AllowFifo` esteja habilitado.

  O padrão é true.

`BootManager`

  O gerenciador de inicialização que o &kdm; deverá usar para oferecer opções de inicialização no diálogo de desligamento.

  `None`

    sem gerenciador de inicialização

  `Grub`

    Gerenciador de inicialização Grub

  `Lilo`

    Gerenciador de inicialização Lilo (apenas no Linux i386 & x86-64)

  O padrão é None.

### A classe de seção [X-:*-Core] do &kdmrc;

Esta classe de seção contém opções referentes a configuração do programa de base do &kdm; (principal).

`OpenDelay`

  Veja `OpenRepeat`.

  O padrão é 15.

`OpenTimeout`

  Veja `OpenRepeat`.

  O padrão é 120.

`OpenRepeat`

  Estas opções controlam o comportamento do &kdm; ao tentar abrir uma conexão com um &X-Server;. `OpenDelay` é o comprimento da pausa (em segundos) entre as tentativas sucessivas, `OpenRepeat` é o número de tentativas a realizar e `OpenTimeout` é a quantidade de tempo a gastar na tentativa de conexão. Após `OpenRepeat` tentativas terem sido feitas, ou se `OpenTimeout` segundos se passarem em qualquer tentativa de conexão em particular, a tentativa de inicialização é considerada falhada.

  O padrão é 5.

`StartAttempts`

  Quantas vezes o &kdm; deve tentar iniciar um terminal `estrangeiro` listado em `StaticServers` antes de levantá-lo e desabilitá-lo. Terminais locais são tentados apenas uma vez, e os terminais &XDMCP; são tentados indefinidamente pelo cliente (a menos que a opção `-once` seja fornecida ao &X-Server;).

  O padrão é 4.

`ServerAttempts`

  Quantas vezes o &kdm; tenta iniciar um &X-Server; local. A inicialização inclui executá-lo e esperar pelo seu ativamento.

  O padrão é 1.

`ServerTimeout`

  Quantos segundos o &kdm; deve esperar para que um &X-Server; local se torne ativo.

  O padrão é 15.

`ServerCmd`

  A linha de comando para iniciar o &X-Server;, sem o nome do terminal e a indicação do VT. Este texto está sujeito à repartição de palavras.

  O padrão é DEF_SERVER_CMD.

`ServerArgsLocal`

  Os argumentos adicionais para os &X-Server;s nas sessões locais. Este texto está sujeito à repartição de palavras.

  Vazio por padrão.

`ServerArgsRemote`

  Os argumentos adicionais para os &X-Server;s nas sessões remotas. Este texto está sujeito à repartição de palavras.

  Vazio por padrão.

`ServerVT`

  O VT em que o &X-Server; deverá rodar. Os `ServerVTs` devem ser usados em vez desta opção. Apenas para o Linux, atualmente.

`ServerTTY`

  Esta opção é para os SOs sem suporte para VTs, quer pelo &kdm; quer pelo SO em si. Atualmente, esta opção aplica-se a todos os SOs, exceto o Linux.

  Quando o &kdm; muda para o modo de console, ele começa a monitorar esta linha de TTY (indicada sem o `/dev/` inicial) por atividade. Se a linha não for usada durante algum tempo, o &kdm; volta para o terminal do X.

  Vazio por padrão.

`PingInterval`

  Veja `PingTimeout`.

  O padrão é 5.

`PingTimeout`

  Para descobrir quando terminais remotos desaparecem, o &kdm; os pinga regularmente. `PingInterval` especifica o tempo (em minutos) entre os pings e `PingTimeout` especifica a quantidade máxima de tempo (em minutos) a esperar pela resposta do terminal. Se o terminal não responder, a sessão será declarada morta e terminada.

  Se você freqüentemente usa terminais X que podem ser isolados do gerenciamento de máquinas, você pode precisar aumentar o tempo de espera. A única preocupação é que as sessões continuarão a existir após o terminal ter sido acidentalmente desabilitado.

  O padrão é 5.

`TerminateServer`

  Se o &kdm; deve reiniciar o &X-Server; local após a sessão terminar ao invés de reiniciá-lo. Use isto se o &X-Server; estiver consumindo memório ou trava o sistema nas tentativas de reinicialização.

  O padrão é false.

`ResetSignal`

  O número do sinal a ser usado para reiniciar o &X-Server; local.

  O padrão é 1 (SIGHUP).

`TermSignal`

  O número do sinal a ser usado para terminar o &X-Server; local.

  O padrão é 15 (SIGTERM).

`Authorize`

  Controla se o &kdm; gera e usa autorização para conexões com &X-Server; local. Para terminais &XDMCP; a autorização solicitada por terminal é usada, terminais estrangeiros não-&XDMCP; não suportam nenhum tipo de autorização.

  O padrão é true.

`AuthNames`

  Se `Authorize` é verdadeiro, usa os mecanismos de autorização listados nele. A autorização MIT-MAGIC-COOKIE-1 está sempre disponível; XDM-AUTHORIZATION-1, SUN-DES-1 e MIT-KERBEROS-5 devem também estar disponíveis, dependendo da configuração de construção.

  O padrão é DEF_AUTH_NAME.

`ResetForAuth`

  Alguns &X-Server;s antigos relêem o arquivo de autorização no momento da reinicialização do &X-Server;, ao invés de quando verifica a conexão inicial. Como o &kdm; gera as informações de autorização antes da conexão com o terminal, um &X-Server; antigo não obterá informações de autorização atualizadas. Esta opção faz com que o &kdm; envie um SIGHUP ao &X-Server; após configurar o arquivo, gerando uma reinicialização adicional do &X-Server;, durante a qual as novas informações de autorização serão lidas.

  O padrão é false.

`AuthFile`

  Este arquivo é usado para comunicar os dados de autorização a partir do &kdm; para o &X-Server;, usando a opção de linha de comando `-auth` do &X-Server;. Ele deve ser mantido em um diretório que não seja gravável por todos de modo que ele possa ser removido facilmente, desabilitando o mecanismo de autorização do &X-Server;. Se não especificado, um nome randômico será gerado a partir do `AuthDir` e do nome do terminal.

  Vazio por padrão.

`Resources`

  Esta opção especifica o nome do arquivo a ser carregado pelo `xrdb` como banco de dados de recursos na janela raiz da tela 0 do terminal. Programas KDE normalmente não se preocupam com recursos-X, logo esta opção somente é necessária se o programa `Setup` precisar de alguns recursos-X.

  Vazio por padrão.

`Xrdb`

  O programa `xrdb` a usar para ler os recursos-X especificados em `Resources`. O comando está sujeito à repartição de palavras.

  O padrão é ${`x_bindir`}/xrdb.

`Setup`

  Este texto está sujeito à repartição de palavras. Isto especifica um programa que é executado (como root) antes de apresentar a janela de saudação. Isto pode ser usado para mudar a aparência da tela ao redor da janela de saudação ou para colocar outras janelas (você pode desejar executar um `xconsole` aqui). O nome convencionado para um arquivo usado aqui é `Xsetup`. Veja .

  Vazio por padrão.

`Startup`

  Este texto está sujeito à repartição de palavras. Isto especifica um programa que é executado (como root) após o processo de autenticação do usuário ocorrer. O nome convencionado para um arquivo usado aqui é `Xstartup`. Veja .

  Vazio por padrão.

`Reset`

  Este texto está sujeito à repartição de palavras. Isto especifica um programa que é executado (como root) após a sessão terminar. O nome convencionado para um arquivo usado aqui é `Xreset`. Veja .

  Vazio por padrão.

`Session`

  Este texto está sujeito à repartição de palavras. Isto especifica o programa de sessão a ser executado (como o usuário dono da sessão). O nome convencionado para um arquivo usado aqui é `Xsession`. Veja .

  O padrão é ${`x_bindir`}/xterm -ls -T.

`FailsafeClient`

  Se o programa `Session` falhar na execução, o &kdm; falhará para este programa. Este programa é executado sem argumentos, mas executa-se usando as mesmas variáveis de ambiente que a sessão deve possuir (veja ).

  O padrão é ${`x_bindir`}/xterm.

`UserPath`

  A variável ambiente `PATH` para `Sessões` não-root.

  O padrão depende do sistema no qual o &kdm; foi construído.

`SystemPath`

  A variável de ambiente `PATH` para todos os programas menos as `Sessões` não-root. Observe que é uma boa prática não incluir o `.` (o diretório atual) nesta entrada.

  O padrão depende do sistema no qual o &kdm; foi construído.

`SystemShell`

  A variável de ambiente `SHELL` para todos os programas menos a `Session`.

  O padrão é /bin/sh.

`UserAuthDir`

  Quando o &kdm; é incapaz de gravar no arquivo de autorização do usuário ativo ($`HOME`/.Xauthority), ele cria um nome de arquivo único neste diretório e aponta para a variável de ambiente `XAUTHORITY` do arquivo criado.

  O padrão é /tmp.

`AutoReLogin`

  Se habilitado, o &kdm; automaticamente reiniciará uma sessão após um &X-Server; quebrar (ou se ele for morto por um Alt-Ctrl-BackSpace). Observe que habilitar este recurso abre uma brecha na segurança: um terminal seguro travado pode ser envolvido (a menos que a trava de tela embutida do &kde; seja usada).

  O padrão é false.

`AllowRootLogin`

  Se desabilitado, não permite que o root (e qualquer outro usuário com UID = 0) se logue diretamente.

  O padrão é true.

`AllowNullPasswd`

  Se desabilitado, somente usuários que possuam senhas atribuídas podem logar-se.

  O padrão é true.

`AllowShutdown`

  Quem tem permissão de desligar o sistema. Isto se aplica tanto ao saudador como ao comando FiFo.

  `None`

    nenhum entrada de menu Desligar... é mostrada

  `Root`

    a senha do root deverá ser inserida para desligamento

  `All`

    todos podem desligar a máquina

  O padrão é All.

`AllowSdForceNow`

  Quem tem permissão de abortar sessões ativas durante o desligamento.

  `None`

    nenhum desligamento forçado é permitido

  `Root`

    a senha do root deverá ser inserida para desligamento forçado

  `All`

    todos podem realizar um desligamento forçado da máquina

  O padrão é All.

`DefaultSdMode`

  A escolha padrão para condição/hora de desligamento.

  `Schedule`

    desligamento após todas as sessões terminarem (possívelmente ao mesmo tempo)

  `TryNow`

    desligar, se nenhuma sessão estiver aberta, caso contrário não fazer nada

  `ForceNow`

    desligar incondicionalmente

  O padrão é Schedule.

`ScheduledSd`

  Como oferecer opções de agendamento de desligamento:

  `Nunca`

    de nenhuma maneira

  `Opcional`

    como um botão no diálogo de desligamento simples

  `Sempre`

    ao invés do diálogo de desligamento simples

  O padrão é Nunca.

`NoPassEnable`

  Habilita o login sem senha neste terminal. Use com extremo cuidado!

  O padrão é false.

`NoPassUsers`

  Os usuários que não precisam fornecer uma senha para logar-se. Ítens que forem precedidos de `@` representam todos os usuários no grupo de usuários nomeado pelo ítem. `*` significa todos os usuários menos o root (e qualquer outro usuário com UID - 0). Nunca lista o root.

  Vazio por padrão.

`AutoLoginEnable`

  Habilita login automático. Use com extremo cuidado!

  O padrão é false.

`AutoLoginUser`

  O usuário para login automático. Nunca especifique o root.

  Vazio por padrão.

`AutoLoginPass`

  A senha para o usuário logar-se automaticamente. Isto não é necessário a menos que o usuário seja logado em um domínio NIS ou Kerberos. Se você usar esta opção, você deve fazer um `chmod `600` `kdmrc`` por motivos óbvios.

  Vazio por padrão.

`SessionsDirs`

  Uma lista dos diretórios contendo definições de tipo de sessão.

  O padrão é ${`kde_datadir`}/kdm/sessions.

`ClientLogFile`

  O arquivo (relativo ao diretório pessoal do usuário) para onde redirecionar a saída da sessão. Uma ocorrência do `%s` neste string será substituída com o nome do terminal. Use o `%%` para obter um literal `%`.

  O padrão é .xsession-errors.

`UseSessReg`

  Indica se o registro incorporado do &kdm; para o utmp/wtmp/lastlog deverá ser usado. Se não for, a ferramenta `sessreg` deverá ser usada nos programas `Startup` e `Reset` ou, em alternativa, deverá ser usado o módulo 'pam_lastlog' para os sistemas com o PAM ativo.

  O padrão é true.

### A classe de seção [X-*-Greeter] do &kdmrc;

Esta classe de seção contém opções referentes à configuração da interface do &kdm; (saudador).

`GUIStyle`

  Especifica o estilo do widget para o saudador. Vazio significa usar o padrão embutido que atualmente é `Plastik`.

  Vazio por padrão.

`ColorScheme`

  Especifica o esquema de cores para o saudador. Vazio significa usar o padrão embutido que atualmente é cinza amarelado com alguns elementos azul claro e amarelo.

  Vazio por padrão.

`LogoArea`

  O que deve ser mostrado no saudador no lado direito das linhas de entrada (se `UserList` estiver desabilitado) ou acima delas (se `UserList` estiver habilitado):

  `None`

    nothing

  `Logo`

    a imagem especificada por `LogoPixmap`

  `Clock`

    um relógio analógico

  O padrão é Clock.

`LogoPixmap`

  A imagem a ser mostrada no saudador se `LogoArea` é `Logo`.

  Vazio por padrão.

`GreeterPos`

  As coordenadas relativas (percentagens do tamanho da tela; X,Y) as quais o centro do saudador é colocado. O &kdm; alinha o saudador aos cantos da tela se ele extrapolar o espaço.

  O padrão é 50,50.

`GreeterScreen`

  A tela que o saudador deve mostrar em configurações múltiplas e Xinerama. A numeração inicia com 0. Para o Xinerama, ela corresponde a ordem da lista na seção ServerLayout ativa do XF86Config. -1 significa usar a tela superior-esquerda, -2 significa usar a tela superior-direita.

`GreetString`

  O título do saudador. Uma saudação vazia significa nenhuma linha de cabeçalho.

  Os seguintes pares de caracteres serão substituídos pelos seus valores:

  `%d`

    nome do terminal atual

  `%h`

    nome da máquina, possivelmente com o nome de domínio

  `%n`

    nome do nó, mais provavelmente o nome da máquina sem o nome de domínio

  `%s`

    sistema operacional

  `%r`

    versão do sistema operacional

  `%m`

    tipo da máquina (hardware)

  `%%`

    um `%` simples

  O padrão é Welcome to %s at %n.

`GreetFont`

  A fonte para o título do saudador.

  O padrão é charter,24,bold.

`StdFont`

  A fonte normal usada no saudador.

  O padrão é helvetica,12.

`FailFont`

  A fonte usada para a mensagem Login Falhou.

  O padrão é helvetica,12,bold.

`AntiAliasing`

  Se as fontes usadas no saudador devem ter o efeito de suavização.

  O padrão é false.

`NumLock`

  O que fazer com o modificador Num Lock na hora que o saudador estiver em execução:

  `Off`

    desliga

  `On`

    liga

  `Keep`

    não muda o estado

  O padrão é Keep.

`Language`

  Idioma a ser usado no saudador, codificado como $`LC_LANG`.

  O padrão é en_US.

`UserCompletion`

  Habilita a auto-complementação na linha de edição do nome do usuário.

  O padrão é false.

`UserList`

  Mostra uma lista com os nomes de login unix, nomes reais e imagens no saudador.

  O padrão é true.

`ShowUsers`

  Esta opção controla que usuários serão mostrados na visão de usuários (`UserList`) e/ou oferecidos para autocomplementação (`UserCompletion`). Se isto for `Selected`, `SelectedUsers` conterá a lista final de usuários. Se isto estiver `NotHidden`, a lista de usuários inicial será a de todos os usuários encontrados no sistema. Usuários contidos em `HiddenUsers` serão removidos da lista, bem como todos os usuários com um UID maior que o especificado em `MaxShowUID` e usuários com um UID não nule menor que o especificado em `MinShowUID`. Ítens em `SelectedUsers` e `HiddenUsers` que estiver precedidos de `@` representam todos os usuários no grupo de usuários nomeado pelo ítem. Finalmente, a lista de usuários será ordenada alfabeticamente, se `SortUsers` estiver habilitado.

  O padrão é NotHidden.

`SelectedUsers`

  Veja `ShowUsers`.

  Vazio por padrão.

`HiddenUsers`

  Veja `ShowUsers`.

  Vazio por padrão.

`MinShowUID`

  Veja `ShowUsers`.

`MaxShowUID`

  Veja `ShowUsers`.

  O padrão é 65535.

`SortUsers`

  Veja `ShowUsers`.

  O padrão é true.

`FaceSource`

  Se `UserList` estiver habilitado, isto especifica de onde o &kdm; obtém as imagens para os usuários:

  `AdminOnly`

    a partir do `<`FaceDir`>/$`USER`.face[.icon]`

  `PreferAdmin`

    preferir o <`FaceDir`>, no lugar do $`HOME`

  `PreferUser`

    ... o contrário do anterior

  `UserOnly`

    a partir do `$`HOME`/.face[.icon]` do usuário

  As imagens pode estar em qualquer formato que o Qt reconheça, mas o nome do arquivo deve corresponder ao esperado pelo &kdm;: `.face.icon` deve ser um ícone de 48x48, enquanto `.face` pode ser uma imagem de 300x300. Atualmente a imagem maior é usada somente como uma referência e é miniaturizada para se ajustar ao saudador, mas no futuro ela poderá ser exibida em tramanho real na área do logotipo ou como uma dica.

  O padrão é AdminOnly.

`FaceDir`

  Veja `FaceSource`.

  O padrão é ${`kde_datadir`}/kdm/faces.

`PreselectUser`

  Especifica se, e se for o caso, um usuário deve ser pré-selecionado para login:

  `None`

    não pré-seleciona nenhum usuário

  `Previous`

    o usuário que logou-se com sucesso por último

  `Default`

    o usuário especificado na opção `DefaultUser`

  Se `FocusPasswd` estiver habilitado e um usuário for pré-selecionado, o cursor será colocado no campo de entrada de senha automaticamente.

  Habilitar este recurso pode ser considerado uma brecha na segurança, uma vez que isto apresenta um nome de login conhecido e válido para um potencial atacante, de modo que ele somente precisa fornecer a senha. Por outro lado, pode ser configurado um nome de login falso para o `DefaultUser`.

  O padrão é None.

`DefaultUser`

  Veja `PreselectUser`.

  Vazio por padrão.

`FocusPasswd`

  Veja `PreselectUser`.

  O padrão é false.

`EchoMode`

  O campo de entrada de senha oculta o texto digitado. Aqui você pode especificar como fazer isto:

  `OneStar`

    `*` é mostrado para cada letra digitada

  `ThreeStars`

    `***` é mostrado para cada letra digitada

  `NoEcho`

    nada é mostrado, o cursor não se move

  O padrão é OneStar.

`UseBackground`

  Se habilitado o &kdm; automaticamente iniciará o programa `krootimage` para configurar o segundo plano. Caso contrário, o programa `Setup` é responsável pelo segundo plano.

  O padrão é true.

`BackgroundCfg`

  O arquivo de configuração a ser usado pelo `krootimage`. Ele contém uma seção nomeada `[Desktop0]` como o `kdesktoprc` possui. Estas opções não são descrita aqui; deduza seu significado ou use o centro de controle.

  O padrão é ${`kde_confdir`}/kdm/backgroundrc.

`GrabServer`

  Para aumentar a segurança, o saudador captura chamadas ao &X-Server; e então ao teclado quando ele inicia. Esta opção especifica se o controle do &X-Server; deve ser mantido durante a leitura do nome/senha. Quando desabilitado, o &X-Server; é liberado após a liberação do teclado ocorrer, caso contrário, o &X-Server; é controlado até pouco antes da sessão iniciar.

  Habilitar esya opção desabilita o `UseBackground` e o `Setup`.

  O padrão é false.

`GrabTimeout`

  Esta opção especifica o tempo máximo que o &kdm; irá esperar para que o controle ocorra. O controle pode falhar se algum outro cliente X estiver controlando o &X-Server; ou o teclado, ou possivelmente se a latência de rede for muito alta. Você deve ser cauteloso ao aumentar o tempo de espera, uma vez que um usuário pode estar monitorando uma janela no terminal. Se um controle falhar, o &kdm; mata e reinicia o &X-Server; (se possível) e a sessão.

  O padrão é 3.

`AuthComplain`

  Atenção, se um terminal não tiver autorização do X. Este será o caso se

  - o arquivo de autorização para um &X-Server; local não puder ser criado,

  - um terminal remoto a partir do &XDMCP; não solicitar qualquer autorização ou

  - o terminal é um terminal estrangeiro especificado em `StaticServers`.

  O padrão é true.

`LoginMode`

  Especifica se o saudador de terminais locais deve iniciar num modo escolhedor de máquina (remoto) ou login (local) e se ele tem permissão de alternar para outro modo.

  `LocalOnly`

    somente o login local é possível

  `DefaultLocal`

    inicia no modo local, mas permite alternar para o modo remoto

  `DefaultRemote`

    ... o contrário do anterior

  `RemoteOnly`

    somente escolha de máquinas remotas é possível

  O padrão é LocalOnly.

`ChooserHosts`

  Uma lista de máquinas a ser automaticamente adicionada ao menu de login remoto. O nome especial `*` significa difusão na rede. Não tem efeito se o `LoginMode` é `LocalOnly`.

  O padrão é *.

`ForgingSeed`

  Use este número como uma semente aleatória ao criar tipos de ssão salvas, etc. de usuários desconhecidos. Isto é usado evitar informar um atacante sobre usuários existentes pela conclusão reversa. Este valor deve ser aleatório mas constante pelo do domínio do login.

`ShowLog`

  Habilita o `xconsole` embutido do &kdm;. Observe que isto pode ser habilitado somente para um terminal por vez. Esta opção está disponível somente se o &kdm; foi `configure` (configurado) com `--enable-kdm-xconsole`.

  O padrão é false.

`LogSource`

  A fonte de dados para o `xconsole` embutido do &kdm;. Se vazio, um redirecionamento de registro do console é solicitado a partir de `/dev/console`. Não possui efeito se `ShowLog` estiver desabilitado.

  Vazio por padrão.

`PluginsLogin`

  Especifica os plugins de conversação para o diálogo de login; o primeiro na lista é selecionado inicialmente. Cada plugin pode ser especificado como um nome base (que se expande para `$`kde_modulesdir`/kgreet_base`) ou como um caminho completo.

  Plugins de conversação são módulos para o saudador que obtém os dados de autenticação a partir do usuário. Atualmente somente o plugin `classic` é disponibilizado com o &kde;; ele apresenta a forma bem conhecida de nome de usuário e senha.

  O padrão é classic.

`PluginsShutdown`

  O mesmo que `PluginsLogin`, mas para o diálogo de desligamento.

  O padrão é classic.

`PluginOptions`

  Uma lista de opções na forma Chave`=`Valor. Os plugins de conversação podem consultar estas configurações; as chaves possíveis dependerão do plugin selecionado.

  Vazio por padrão.

`AllowConsole`

  Mostra a ação de Login de Console na tela de boas-vindas (se o `ServerTTY`/`ConsoleTTYs` estiverem configurados).

  O padrão é true.

`AllowClose`

  Mostra a ação Reiniciar Servidor X/Fechar Conexão no saudador.

  O padrão é true.

`Preloader`

  Um programa a ser executado enquanto o saudador estiver visível. Ele é supostamente para pré-carregar bem como possivelmente da sessão que está sendo iniciada (mais provavelmente).

  Vazio por padrão.

`UseTheme`

  Se o saudador deve usar um tema.

  O padrão é false.

`Tema`

  O tema usado pelo saudador. Pode apontar para um diretório ou um arquivo XML.

  Vazio por padrão.

## Especificando &X-Server;s permanentes

Cada entrada na lista `StaticServers` indica uma terminal que deverá constantemente ser gerenciado e que não está usando o &XDMCP;. Este método é tipicamente usado somente para &X-Server;s locais que são iniciados pelo &kdm;, mas o &kdm; pode também gerenciar &X-Server;s iniciados externamente (estrangeiros), sejam eles executados na máquina local ou remotamente.

A sintaxe formal de uma especificação é

    nome terminal [_classe terminal]

para todos os &X-Server;s. Os estrangeiros diferem pelo fato de terem um nome da máquina no nome do terminal, mesmo que seja `localhost`.

O nome do terminal deve ser algo que possa ser passado na opção `-display` de um programa X. Este string é usado para gerar os nomes de seção específicos do terminal, logo seja cuidadoso ao corresponder os nomes. O nome do terminal de terminais &XDMCP; é derivado do endereço do terminal por resolução reversa de nome de máquina. Para fins de configuração, o prefixo `localhost` de terminais &XDMCP; locais não é cortado para torná-los distinguíveis dos &X-Server;s locais iniciados pelo &kdm;.

A porção classe de terminal é também usada nas seções específicas de terminal. Isto é útil se você tem uma grande coleção de terminais semelhantes (como um circuito de terminais X) e gostaria de configurar opções para grupos deles. Ao usar o &XDMCP; o terminal é necessário para especificar a classe do terminal, de modo que o manual para seu terminal X em particular deve documentar o string de classe do terminal para seu dispositivo. Caso contrário, você pode executar o &kdm; em modo de depuração e fazer um `grep` do registro para a classe.

O terminal especificado em `ReserveServers` não será iniciado quando o &kdm; iniciar, mas quando ele for explicitamente solicitado através de soquete de comando (ou FiFo). Se a reserva do terminal estiver especificada, o menu do &kde; terá um ítem Iniciar Nova Sessão próximo à base; use-o para ativar um terminal reservado com uma nova sessão de login. O monitor alternará para o novo terminal, e você terá um minuto para logar-se. Se não existirem mais terminais reservados disponíveis, o ítem do menu será desabilitado.

Quando o &kdm; iniciar uma sessão, ele configura os dados de autorização para o &X-Server;. Para servidores locais, o &kdm; passa ``-auth` `nome de arquivo`` na linha de comando do &X-Server;, apontando para os dados de autorização. Para terminais &XDMCP;, o &kdm; passa os dados de autorização ao &X-Server; via a mensagem Accept do &XDMCP;.

## Controle de acesso &XDMCP;

O arquivo especificado pela opção `AccessFile` fornece informações que o &kdm; usa para controlar o acesso a partir de terminais solicitando serviçoes através do &XDMCP;. O arquivo contém quatro tipos de entradas: entradas que controlam a resposta para consultas Direct e Broadcast, entradas que controlam a resposta para consultas Indirect, definições de macro para entradas Indirect, e entradas que controlam em quais interfaces de rede o &kdm; deve receber consultas &XDMCP;. Linha em branco são ignoradas, `#` é tratado como um delimitador de comentário fazendo com que o resto da linha seja ignorado, e `\` faz com que o caracter de nova linha a seguir seja ignorado, permitindo que listas de máquinas indiretas sejam divididas em múltiplas linhas.

O formato das entradas Direct é simples, sendo um nome de máquina ou padrão, que é comparado contra o nome de máquina do dispositivo de terminal. Padrões são diferenciados dos nomes de máquina pela inclusão de um ou mais caracteres meta; `*` corresponde a qualquer sequência de 0 ou mais caracteres, e `?` corresponde a um caracter simples. Se a entrada é um nome de máquina, todas as comparações são feitas usando os endereços de rede, de modo que qualquer nome que converta para o endereço de rede correto pode ser usado. Observe que somente o primeiro endereço de rede retornado para o nome de máquina é usado. Para padrões, somente nomes de máquina canônicos são usados na comparação, de modo que certifique-se de que você não tente corresponder apelidos. Preceder a entrada com um caracter `!` faz com que as máquinas que correspondam a entrada sejam excluídas. Para responder somente a consultas Direct para uma máquina ou padrão, ele pode ser seguido pela chave `NOBROADCAST` opcional. Isto pode ser usado pear evitar que um servidor &kdm; apareça em menus baseados em consulta Broadcast.

Uma entrada Indirect contém também um nome de máquina ou padrão, mas é seguida de uma lista de nomes de máquinas ou macros nas quais as consultas são repassadas. Entradas Indirect podem ser excludentes também, sendo que neste caso um nome de máquina simulado (válido) deve ser fornecido para tornar esta entrada distinguível de uma entrada Direta. Se compilado com suporte ao IPv6, grupos de endereços múltiplos pode também ser incluído na lista de endereços e consultas que são repassadas. Se a lista de máquinas indiretas contiver a chave `CHOOSER`, consultas Indirect não são repassadas, mas ao invés disso um diálogo de escolha de máquina é exibido pelo &kdm;. O selecionador enviará um consulta Direct para cada nome de máquina restante da lista e oferecerá um menu para todas as máquinas que responderem. A lista de máquinas pode conter a chave `BROADCAST`, para fazer com que o selecionador envie uma consulta Broadcast também; observe que em alguns sistemas operacionais, pacotes UDP não podem ser enviados em broadcast, logo este recurso não funcionará.

Ao verificar o acesso a uma máquina de terminal em particular, cada entrada é pesquisada e a primeira correspondente determina a resposta. Entradas Direct e Broadcast são ignoradas ao pesquisar por uma entrada Indirect e vice-versa.

Uma definição de macro contém um nome de macro e uma lista de nomes de máquinas e outras macros para a qual a macro se expande. Para distinguir macros de nomes de máquina, os nomes de macro iniciam com um caracter `%`.

O último tipo de entrada é a diretiva `LISTEN`. A sintaxe formal é

     LISTEN [interface [multicast lista]]

Se uma ou mais linhas `LISTEN` forem especificadas, o &kdm; ouve por solicitações &XDMCP; somente nas interfaces especificas. A interface pode ser um nome de máquina ou endereço IP representando uma interface de rede nesta máquina, ou o coringa `*` para representar todas as interfaces de rede disponíveis. Se um grupo de endereços múltiplos estiver sendo ouvido em uma linha `LISTEN`, o &kdm; une os grupos múltiplos na interface fornecida. Para IPv6 múltiplo, a IANA atribuiu ff0X:0:0:0:0:0:0:12b como intervcalo permanentemente atribuído para endereços múltiplos para o &XDMCP;. O X no prefixo pode ser substituído por qualquer identificador de escopo válido, como 1 para Nó-Local, 2 para Link-Local, 5 para Site-Local, e assim por diante (veja IETF RFC 2373 ou seu substituto para mais detalhes e definições de escopo). O padrão do &kdm; é ouvir no escopo Link-Local scope endereços ff02:0:0:0:0:0:0:12b para atender melhor o comportamento de broadcast em subrede IPv4. Se nenhuma linha `LISTEN` for fornecida, o &kdm; ouve em todas as interfaces e une o padrão de grupo múltiplo IPv6 do &XDMCP; (quando compilado com suporte ao IPv6). Para desabilitar receber solicitações &XDMCP; uma linha `LISTEN` sem nenhum endereço pode ser especificada, mas usar a opção `[Xdmcp]` `Enable` é preferível.

## Programas suplementares

Os seguintes programas são executados pelo &kdm; em vários estágios de uma sessão. Eles são tipicamente scripts shell.

Os programas de Configuração, Inicialização e Reinicialização são executados como root, assim eles devem ser cuidadosos com a segurança. Seu primeiro argumento é `auto` se a sessão resulta de um login automático, caso contrário nenhum argumento é passado para eles.

### O programa de configuração

O programa `Xsetup` é executado após o &X-Server; ser iniciado ou reiniciado, mas antes do saudador aparecer. Ele é o local para mudar o pano de fundo raiz (se `UseBackground` estiver desabilitado) ou levantar outras janelas que devem aparecer na tela junto com o saudador.

Além de qualquer uma especificada pela `ExportList`, as seguintes variáveis de ambiente são passadas:

DISPLAY

  o nome do terminal associado

PATH

  o valor de `SystemPath`

SHELL

  o valor de `SystemShell`

XAUTHORITY

  pode ser configurado para um arquivo de autorização

DM_CONTROL

  o valor de `FifoDir`

Observe que uma vez que o &kdm; intercepta o teclado, qualquer outra janela não será capaz de receber entradas de teclado. Elas serão capazes de interagir com o mouse, no entanto; atente para falhas de segurança em potencial aqui. Se o `GrabServer` é configurado, o `Xsetup` não será capaz de conectar a nenhum terminal. Recursos para este programa podem ser colocados no arquivo nomeado como `Resources`.

### Programa de inicialização

O programa `Xstartup` é executado como root quando o usuário se loga. Ele é o local para colocar comandos que adicionem entradas ao `utmp` (o programa `sessreg` pode ser útil aqui), montar pastas pessoais de usuário nos servidores de arquivo, ou abortar a sessão se algum requisito não for atingido (mas observe que em sistemas modernos, muitas destas tarefas já podem ser feitas por módulos PAM).

Além de qualquer uma especificada pela `ExportList`, as seguintes variáveis de ambiente são passadas:

DISPLAY

  o nome do terminal associado

HOME

  o diretório inicial de trabalho do usuário

LOGNAME

  o nome do usuário

USER

  o nome do usuário

PATH

  o valor de `SystemPath`

SHELL

  o valor de `SystemShell`

XAUTHORITY

  pode ser configurado para um arquivo de autorização

DM_CONTROL

  o valor de `FifoDir`

O &kdm; espera até este programa terminar antes de iniciar a sessão do usuário. Se o valor de saída do programa não for zero, o &kdm; interrompe a sessão e inicia outro ciclo de autenticação.

### Programa de sessão

O programa `Xsession` é o comando que é executado como usuário da sessão. Ele é executado com as permissões do usuário autorizado. Um das chaves `failsafe`, `default` ou `custom`, ou um string para ser `eval` por um shell compatível é passado como primeiro argumento.

Além de qualquer uma especificada pela `ExportList`, as seguintes variáveis de ambiente são passadas:

DISPLAY

  o nome do terminal associado

HOME

  o diretório inicial de trabalho do usuário

LOGNAME

  o nome do usuário

USER

  o nome do usuário

PATH

  o valor de `UserPath` (ou `SystemPath` para sessões do usuário root)

SHELL

  o shell padrão do usuário

XAUTHORITY

  pode ser configurado para um arquivo de autoridade não-padrão

KRBTKFILE

  pode ser configurado para um nome de cache de credenciais Kerberos4

KRB5CCNAME

  pode ser configurado para um nome de cache de credenciais Kerberos5

DM_CONTROL

  o valor de `FifoDir`

XDM_MANAGED

  conterá uma lista separada por vírgulas de parâmetros que a sessão pode achar interessante, como a localização do comando FiFo e suas capacidades, e qual plugin de conversação foi usado para o login

DESKTOP_SESSION

  o nome da sessão que o usuário escolheu rodar

### Programa de reiniciar

Simétrico ao `Xstartup`, o programa `Xreset` é executado após a sessão do usuário terminar. Executado como root, ele deve conter comandos que desfazem efeitos de comandos do `Xstartup`, removendo entradas do `utmp` ou desmontando diretórios de servidores de arquivos.

As variáveis de ambiente que são passadas para o `Xstartup` são também passadas para o `Xreset`.