# The Files &kdm; Uses for Configuration

This chapter documents the files that control &kdm;'s behavior. Some of this can be also controlled from the &kcontrol; module, but not all.

## &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 de terminal, que consiste de um nome de máquina (que é vazio para terminais locais especificados no arquivo Xservers), dois pontos e um número de terminal. Adicionalmente, um terminal pertence à uma classe de terminais (que pode 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 `*` 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.

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

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

  - [X-minhamaquina:0_dpy] precede

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

  - [X-minhamaquina:*_dpy] que precede

  - [X-minhamaquina:*_*] (o mesmo que [X-minhamaquina]) 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: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.

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;.

`Xservers`

- Se o valor iniciar com uma barra (/), ele especifica um arquivo de onde o &X-Server; deve ler as definições. Caso contrário, ele é uma definição do &X-Server; propriamente dita. Veja em kdmrc-xservers para mais detalhes.

  O padrão é uma definição do &X-Server; que é razoável para como o sistema &kdm; foi construído.

`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.

  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 menter 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 elas não seriam necessárias 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 desabilitar FiFos.

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

`FifoGroup`

- A qual grupo os comandos FiFos devem pertencer. Pode ser tanto 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 exempl 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 kdmrc-xaccess.

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

`UseLilo`

- Instrui o &kdm; a oferecer as opções de reinicialização do LiLo no diálogo de desligamento.

  Somente disponível para Linux i386 & x86-64.

  O padrão é false.

`LiloCmd`

- A localização do binário do LiLo.

  Somente disponível para Linux i386 & x86-64.

  O padrão é /sbin/lilo.

`LiloMap`

- A localização do arquivo map que o LiLo deve usar.

  Somente disponível para Linux i386 & x86-64.

  O padrão é /boot/map.

### 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 no arquivo `Xservers` 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.

`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 padrão é ${`x_bindir`}/xrdb.

`Setup`

- 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 kdmrc-xsetup.

  Vazio por padrão.

`Startup`

- 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 kdmrc-xstartup.

  Vazio por padrão.

`Reset`

- Isto especifica um programa que é executado (como `root`) após a sessão terminar. O nome convencionado para um arquivo usado aqui é `Xreset`. Veja kdmrc-xreset.

  Vazio por padrão.

`Session`

- 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 kdmrc-xsession.

  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 kdmrc-xsession).

  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.

`InteractiveSd`

- Se desabilitado, o usuário deve selecionar a condição/hora de desligamento diretamente no diálogo de desligamento. Caso contrário, ele não será questionado quanto a estas opções mas será questionado caso exista alguma sessão aberta atualmente.

  ERRO: a interação não está atualmente implementada. Se isto estiver habilitado, um desligamento normal forçado será executado (ignorando o valor da opção `AllowSdForceNow`!), neste caso o &kdm; se comportará exatamente como antes do &kde; 3.0.

  O padrão é true.

`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 liste 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.

### 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 é `Keramik`.

  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 autocomplementaçã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, e 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` listado no arquivo `Xservers`.

  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 Login no Console no saudador. Para isto funcionar, um console deve estar configurar para este terminal em particular, veja kdmrc-xservers.

  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.

## Specifying permanent &X-Server;s

Each specification indicates a display which should constantly be managed and which is not using &XDMCP;. This method is typically used only for local &X-Server;s that are started by &kdm;, but &kdm; can manage externally started (foreign) &X-Server;s as well, may they run on the local machine or rather remotely.

The formal syntax of a specification is

    display name [display class] local[@tty] [reserve] server command

for own &X-Server;s and

    display name [display class] foreign

for foreign &X-Server;s.

The `display name` must be something that can be passed in the `-display` option to an X program. This string is used to generate the display-specific section names, so be careful to match the names. The display name of &XDMCP; displays is derived from the display's address by reverse host name resolution. For configuration purposes, the `localhost` prefix from locally running &XDMCP; displays is not stripped to make them distinguishable from local &X-Server;s started by &kdm;.

The `display class` portion is also used in the display-specific sections. This is useful if you have a large collection of similar displays (such as a corral of X terminals) and would like to set options for groups of them. When using &XDMCP;, the display is required to specify the display class, so the manual for your particular X terminal should document the display class string for your device. If it doesn't, you can run &kdm; in debug mode and `grep` the log for class.

The `tty` specifies which text console an &X-Server; is covering, so &kdm; knows which console it should monitor for activity after switching to Console login to find out when the console session ends. Note that this concept (originating from Solaris) is not perfectly suited for Linux, as there &X-Server;s run on separate virtual terminals and consequently don't actually cover consoles (`getty`s).

The `reserve` keyword instructs &kdm; to start the display not when &kdm; starts up, but when it is explicitly requested via the command FiFo. If reserve displays are specified, the &kde; menu will have a Start New Session item near the bottom; use that to activate a reserve display with a new login session. The monitor will switch to the new display, and you will have a minute to login. If there are no more reserve displays available, selecting the menu item will have no effect.

The `server command` specifies the complete &X-Server; command line, including a display number for secondary displays. When &kdm; starts a session, it sets up authorization data for the &X-Server;. For local servers, &kdm; passes ``-auth` ``filename``` on the &X-Server;'s command line to point it at its authorization data. For &XDMCP; displays, &kdm; passes the authorization data to the &X-Server; via the Accept &XDMCP; message.

## &XDMCP; access control

The file specified by the `AccessFile` option provides information which &kdm; uses to control access from displays requesting service via &XDMCP;. The file contains four types of entries: entries which control the response to Direct and Broadcast queries, entries which control the response to Indirect queries, macro definitions for Indirect entries, and entries which control on which network interfaces &kdm; listens for &XDMCP; queries. Blank lines are ignored, `#` is treated as a comment delimiter causing the rest of that line to be ignored, and `\` causes an immediately following newline to be ignored, allowing indirect host lists to span multiple lines.

The format of the Direct entries is simple, either a host name or a pattern, which is compared against the host name of the display device. Patterns are distinguished from host names by the inclusion of one or more meta characters; `*` matches any sequence of 0 or more characters, and `?` matches any single character. If the entry is a host name, all comparisons are done using network addresses, so any name which converts to the correct network address may be used. Note that only the first network address returned for a host name is used. For patterns, only canonical host names are used in the comparison, so ensure that you do not attempt to match aliases. Preceding the entry with a `!` character causes hosts which match that entry to be excluded. To only respond to Direct queries for a host or pattern, it can be followed by the optional `NOBROADCAST` keyword. This can be used to prevent a &kdm; server from appearing on menus based on Broadcast queries.

An Indirect entry also contains a host name or pattern, but follows it with a list of host names or macros to which the queries should be forwarded. Indirect entries can be excluding as well, in which case a (valid) dummy host name must be supplied to make the entry distinguishable from a Direct entry. If compiled with IPv6 support, multicast address groups may also be included in the list of addresses the queries are forwarded to. If the indirect host list contains the keyword `CHOOSER`, Indirect queries are not forwarded, but instead a host chooser dialog is displayed by &kdm;. The chooser will send a Direct query to each of the remaining host names in the list and offer a menu of all the hosts that respond. The host list may contain the keyword `BROADCAST`, to make the chooser send a Broadcast query as well; note that on some operating systems, UDP packets cannot be broadcast, so this feature will not work.

When checking access for a particular display host, each entry is scanned in turn and the first matching entry determines the response. Direct and Broadcast entries are ignored when scanning for an Indirect entry and vice-versa.

A macro definition contains a macro name and a list of host names and other macros that the macro expands to. To distinguish macros from hostnames, macro names start with a `%` character.

The last entry type is the `LISTEN` directive. The formal syntax is

     LISTEN [interface [multicast list]]

If one or more `LISTEN` lines are specified, &kdm; listens for &XDMCP; requests only on the specified interfaces. `interface` may be a hostname or IP addresss representing a network interface on this machine, or the wildcard `*` to represent all available network interfaces. If multicast group addresses are listed on a `LISTEN` line, &kdm; joins the multicast groups on the given interface. For IPv6 multicasts, the IANA has assigned ff0`X`:0:0:0:0:0:0:12b as the permanently assigned range of multicast addresses for &XDMCP;. The `X` in the prefix may be replaced by any valid scope identifier, such as 1 for Node-Local, 2 for Link-Local, 5 for Site-Local, and so on (see IETF RFC 2373 or its replacement for further details and scope definitions). &kdm; defaults to listening on the Link-Local scope address ff02:0:0:0:0:0:0:12b to most closely match the IPv4 subnet broadcast behavior. If no `LISTEN` lines are given, &kdm; listens on all interfaces and joins the default &XDMCP; IPv6 multicast group (when compiled with IPv6 support). To disable listening for &XDMCP; requests altogther, a `LISTEN` line with no addresses may be specified, but using the `[Xdmcp]` `Enable` option is preferred.

## Supplementary programs

The following programs are run by &kdm; at various stages of a session. They typically are shell scripts.

The Setup, Startup and Reset programs are run as `root`, so they should be careful about security. Their first argument is `auto` if the session results from an automatic login, otherwise no arguments are passed to them.

### Setup program

The `Xsetup` program is run after the &X-Server; is started or reset, but before the greeter is offered. This is the place to change the root background (if `UseBackground` is disabled) or bring up other windows that should appear on the screen along with the greeter.

In addition to any specified by `ExportList`, the following environment variables are passed:

DISPLAY

- the associated display name

PATH

- the value of `SystemPath`

SHELL

- the value of `SystemShell`

XAUTHORITY

- may be set to an authority file

DM_CONTROL

- the value of `FifoDir`

Note that since &kdm; grabs the keyboard, any other windows will not be able to receive keyboard input. They will be able to interact with the mouse, however; beware of potential security holes here. If `GrabServer` is set, `Xsetup` will not be able to connect to the display at all. Resources for this program can be put into the file named by `Resources`.

### Startup program

The `Xstartup` program is run as `root` when the user logs in. This is the place to put commands which add entries to `utmp` (the `sessreg` program may be useful here), mount users' home directories from file servers, or abort the session if some requirements are not met (but note that on modern systems, many of these tasks are already taken care of by PAM modules).

In addition to any specified by `ExportList`, the following environment variables are passed:

DISPLAY

- the associated display name

HOME

- the initial working directory of the user

LOGNAME

- the user name

USER

- the user name

PATH

- the value of `SystemPath`

SHELL

- the value of `SystemShell`

XAUTHORITY

- may be set to an authority file

DM_CONTROL

- the value of `FifoDir`

&kdm; waits until this program exits before starting the user session. If the exit value of this program is non-zero, &kdm; discontinues the session and starts another authentication cycle.

### Session program

The `Xsession` program is the command which is run as the user's session. It is run with the permissions of the authorized user. One of the keywords `failsafe`, `default` or `custom`, or a string to `eval` by a bourne-compatible shell is passed as the first argument.

In addition to any specified by `ExportList`, the following environment variables are passed:

DISPLAY

- the associated display name

HOME

- the initial working directory of the user

LOGNAME

- the user name

USER

- the user name

PATH

- the value of `UserPath` (or `SystemPath` for `root` user sessions)

SHELL

- the user's default shell

XAUTHORITY

- may be set to a non-standard authority file

KRBTKFILE

- may be set to a Kerberos4 credentials cache name

KRB5CCNAME

- may be set to a Kerberos5 credentials cache name

DM_CONTROL

- the value of `FifoDir`

XDM_MANAGED

- will contain a comma-separated list of parameters the session might find interesting, like the location of the command FiFo and its capabilities, and which conversation plugin was used for the login

DESKTOP_SESSION

- the name of the session the user has chosen to run

### Reset program

Symmetrical with `Xstartup`, the `Xreset` program is run after the user session has terminated. Run as `root`, it should contain commands that undo the effects of commands in `Xstartup`, removing entries from `utmp` or unmounting directories from file servers.

The environment variables that were passed to `Xstartup` are also passed to `Xreset`.