# Os Ficheiros de Configuração do &kdm;

Este capítulo documenta os ficheiro que controlam o comportamento do &kdm;. Parte desta funcionalidades também podem ser controladas do módulo do &systemsettings;, mas não todas.

## &kdmrc; - O Ficheiro de Configuração do &kdm;

O formato básico do ficheiro é do tipo INI. As opções são pares chave/valor, colocados em secções. Tudo no ficheiro distingue a capitalização. Os erros sintácticos e identificadores de chave/secção não reconhecidos causam o envio pelo &kdm; de mensagens de erro não fatais.

As linhas que começam com `#` são comentários; as linhas vazias também são ignoradas.

A secção são denotadas por `[``Nome da Secção``]`.

Você poderá configurar cada ecrã do X individualmente.

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

A secções com configurações específicas a certos ecrãs seguem a sintaxe `[X-` `máquina` [ `:` `número` [ `_` `classe` ] ] `-` `sub-secção` `]`

Todas as secção com a mesma `sub-secção` compõem uma classe de secção.

Você poderá usar o carácter especial `*` para a `máquina`, o `número` e a `classe`. Você poderá omitir os componentes restantes; estes serão assumidos como `*`, nesse caso. A parte da máquina poderá ter uma especificação de dominio como .homelinux.org ou a sequência especial `+` (que corresponde a itens não-vazios).

A forma como se sabe a secção a que é extraída uma configuração é indicada por estas regras:

- Uma correspondência exacta tem precedência sobre uma correspondência parcial (para a parte da máquina), a qual tem precedência por sua vez sobre um carácter especial (com o `+` a tomar precedência sobre o `*`).

- A precedência diminui da esquerda para a direita nas ocorrências exactas equivalentes.

- Exemplo: nome de ecrã maquina:0, classe dpy

  - O [X-maquina.dominio:0_dpy] precede

  - O [X-maquina.dominio:0_*] (o mesmo que [X-maquina.dominio:0]) precede

  - O [X-maquina.dominio:*_dpy] precede

  - O [X-maquina.dominio:*_*] (o mesmo que [X-maquina.dominio]) precede

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

  - O [X-+:0_dpy] precede

  - O [X-*:0_dpy] precede

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

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

  - Estas secções não correspondem a este ecrã:

    [X-maquina_dele], [X-maquina.dominio:0_dec], [X-*:1], [X-:*]

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

O formato para todas as chaves é ```chave`` `=` `valor``. As chaves só são válidas na classe de secção para a qual estão definidas. Algumas chaves não se aplicam a certos ecrãs, sendo neste caso ignoradas.

Se não for encontrada numa dada secção, é usado o valor predefinido.

Os caracteres especiais que necessitam de 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 plicas (`'`) e aspas (`"`) têm o significado normal; a barra invertida 'escapa' tudo (não apenas os caracteres especiais). Lembre-se que as barras invertidas necessitam de ser duplicadas, devido aos dois níveis de escape.

O &kdmrc; original está comentado de forma exaustiva. Todos os comentários serão perdidos se modificar este ficheiro através do &systemsettings;.

### A secção [General] (geral) do &kdmrc;

Esta secção contém opções globais que não se adequam a qualquer secção específica.

`ConfigVersion`

- Esta opção existe apenas com o intuito de limpar as actualizações automáticas. Não a altere, ou irá interferir com as futuras actualizações, e isso poderá fazer com que o &kdm; deixe de correr.

`StaticServers`

- Uma lista dos ecrãs (&X-Server;s) geridos permanentemente pelo &kdm;. Os ecrãs 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 ecrãs locais, para os quais o &kdm; arranca o seu próprio &X-Server;; veja o `ServerCmd`. Cada ecrã poderá pertencer a uma dada classe; adicione-a ao nome do ecrã, separada por um sublinhado. Veja os detalhes em kdmrc-xservers.

  O valor por omissão é 0.

`ReserveServers`

- Uma lista de ecrãs a pedido. Veja a sintaxe no `StaticServers`.

  Vazio por omissão.

`ServerVTs`

- Lista de Terminais Virtuais a alocar aos &X-Server;s. Para números negativos é utilizado o valor absoluto e o VT é alocado apenas se o kernel dizer que está livre. Se o &kdm; esgotar esta lista, aloca VTs livres com um número maior que o valor absoluto do última valor nesta lista. De momento, apenas funciona no Linux.

  Vazio por omissão.

`ConsoleTTYs`

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

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

  Vazio por omissão.

`PidFile`

- O ficheiro indicado será criado contendo uma representação ASCII do ID do processo principal do &kdm;; o PID não será guardado se o nome de ficheiro estiver vazio.

  Vazio por omissão.

`LockPidFile`

- Esta opção controla se o &kdm; utiliza exclusão por ficheiros para impedir que vários gestores de ecrã colidam uns com os outros.

  O valor por omissão é `true` (verdadeiro).

`AuthDir`

- O nome de uma directoria onde o &kdm; guarda ficheiros de autorização de &X-Server; ao inicializar a sessão. O &kdm; assume que o sistema limpa esta directoria de ficheiros obsoletos ao reiniciar o sistema.

  O ficheiro de autorização a ser utilizado para um ecrã em particular pode ser indicado com a opção `AuthFile` em [X-*-Core].

  O valor por omissão é /var/run/xauth.

`AutoRescan`

- Este booleano controla se o &kdm; volta a ler automaticamente os seus ficheiros de configuração, se detectar que foram modificados.

  O valor por omissão é `true` (verdadeiro).

`ExportList`

- Variáveis de ambiente adicionais que o &kdm; deve passar a todos os programas que executa. `LD_LIBRARY_PATH` e `XCURSOR_THEME` são boas candidatas; noutros casos não deve ser frequentemente necessário.

  Vazio por omissão.

`RandomFile`

- Se o sistema não tem uma fonte de entropia nativa como o /dev/urandom (veja `RandomDevice`) e nenhum servidor de entropia com o EGD (veja `PrngdSocket` e `PrngdPort`) estiver a correr, o &kdm; utiliza o seu próprio gerador de números pseudo aleatórios que irá, entre outras coisas, fazer somas de controlo sucessivas a este ficheiro (que, obviamente, deve mudar frequentemente).

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

  O valor por omissão é /dev/mem.

`PrngdSocket`

- Se o sistema não tem uma fonte de entropia nativo como o /dev/urandom (veja `RandomDevice`), ler dados aleatórios de um Servidor de Geração de Números Pseudo-Aleatórios, como o (http://egd.sourceforge.net), via este 'socket' de domínio UNIX.

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

  Vazio por omissão.

`PrngdPort`

- O mesmo que `PrngdSocket`, mas ler um 'socket' TCP na máquina local.

`RandomDevice`

- A localização de um dispositivo de tipo caracter de onde o KDM deve ler dados aleatórios. Vazio significa utilizar o dispositivo de entropia preferia do sistema, se houver um.

  Esta opção não existe no OpenBSD, uma vez que utiliza a função aleatória arc4_random.

  Vazio por omissão.

`FifoDir`

- A pasta onde os 'sockets' de comando deverão ser criados; deixe em branco para os desactivar.

  O valor por omissão é /var/run/xdmctl.

`FifoGroup`

- A que grupo os 'sockets' de comandos deverão pertencer; pode ser um nome ou um ID numérico.

`GreeterUID`

- O utilizador com que as boas-vindas deverão ser executadas. Um valor vazio corresponde a `root`. Considere o impacto no `LogSource` ao definir este valor.

  Vazio por omissão.

`DataDir`

- A pasta onde o &kdm; deve armazenar dados persistentes de trabalho; estes dados são por exemplo o último utilizador que se ligou num dado ecrã.

  O valor por omissão é /var/lib/kdm.

`DmrcDir`

- A pasta onde o &kdm; deve guardar os ficheiros `.dmrc` dos utilizadores. Isto só é necessário se não for possível ler as pastas pessoais antes de realmente se ligar (como quando utiliza o AFS).

  Vazio por omissão.

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

Esta secção contém opções que controlam a gestão de pedidos &XDMCP; pelo &kdm;.

`Enable`

- Se o &kdm; deverá atender os pedidos de &XDMCP;.

  O valor por omissão é `true` (verdadeiro).

`Port`

- Indica o número de porto UDP que o &kdm; utiliza para escutar pedidos &XDMCP;. A não ser que necessite de depurar o sistema, deixe com o valor por omissão.

  O valor por omissão é 177.

`KeyFile`

- A autenticação XDM-AUTHENTICATION-1 no estilo &XDMCP; necessita de uma chave privada partilhada entre o &kdm; e o terminal. Esta opção indica o ficheiro que contém estes valores. Cada entrada no ficheiro consiste de um nome de ecrã e da chave partilhada.

  Vazio por omissão.

`Xaccess`

- Para impedir a utilização não autorizada do serviço &XDMCP; e permitir o reenvio de pedidos &XDMCP; IndirectQuery, este ficheiro contém uma base de dados de nomes de máquinas que podem aceder directamente a esta máquina, ou uma lista de máquinas para quais os pedidos devem ser reenviados. O formato deste ficheiro está descrito em kdmrc-xaccess.

  O valor por omissão é ${`kde_confdir`}/kdm/Xaccess.

`ChoiceTimeout`

- O número de segundos a esperar por uma resposta do ecrã depois de o utilizador ter escolhido uma máquina no selector. Se o ecrã enviar um IndirectQuery por &XDMCP; dentro deste tempo, o pedido é reenviado para a máquina escolhida; caso contrário, assume-se que é de uma nova sessão e a escolha é oferecida novamente.

  O valor por omissão é 15.

`RemoveDomainname`

- Ao calcular o nome de ecrã para clientes &XDMCP;, a resolução de nomes cria tipicamente um nome de máquina completo, com a componente de domínio, para o terminal. Uma vez que isto por vezes é confuso, o &kdm; remove a componente de domínio do nome se este for o mesmo que o da máquina local, se esta opção estiver activada.

  O valor por omissão é `true` (verdadeiro).

`SourceAddress`

- Usa o endereço IP numérico da ligação recebida em vez do nome da máquina em máquinas com várias interfaces de rede. Isto permite evitar ligar à interface errada que pode estar desligada nesse momento.

  O valor por omissão é false (falso).

`Willing`

- Isto indica que programa é executado (como `root`) quando um DirectQuery ou BroadcastQuery de &XDMCP; é recebido e esta máquina está configurado para oferecer gestão de ecrãs &XDMCP;. O resultado deste programa poderá ser mostrado na janela de escolha. Se não foi indicado um programa, é enviado o texto Willing to manage.

  Vazio por omissão.

### A secção [Shutdown] (desligar) do &kdmrc;

Esta secção contém opções globais relacionadas com o desligar do sistema.

`HaltCmd`

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

  O valor por omissão é algo razoável para o sistema em que o &kdm; foi compilado, como por exemplo `/sbin/shutdown `-h` `now``.

`RebootCmd`

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

  O valor por omissão é algo razoável para o sistema em que o &kdm; foi compilado, como por exemplo `/sbin/shutdown `-r` `now``.

`AllowFifo`

- Se uma pessoa pode desligar o sistema através do 'socket' global de comandos.

  O valor por omissão é false (falso).

`AllowFifoNow`

- Se alguém poderá interromper as sessões em execução ao desligar o sistema através do 'socket' global de comandos.

  Isto não terá efeito a menos que você tenha definido previamente a opção `AllowFifo`.

  O valor por omissão é `true` (verdadeiro).

`BootManager`

- O gestor de arranque que o &kdm; deverá usar para oferecer opções de arranque na janela de finalização.

  `None`

- sem gestor de arranque

`Grub`

- Gestor de arranque Grub

`Grub2`

- Gestor de arranque Grub2

`Lilo`

- Gestor de arranque Lilo (apenas no Linux i386 & x86-64)

O valor por omissão é None (nenhum).

### A classe de secções [X-*-Core] do &kdmrc;

Esta secção contém opções relacionadas com a configuração da infra-estrutura do &kdm; (núcleo).

`OpenDelay`

- Veja `OpenRepeat`.

  O valor por omissão é 15.

`OpenTimeout`

- Veja `OpenRepeat`.

  O valor por omissão é 120.

`OpenRepeat`

- Esta opções controlar o comportamento do of &kdm; ao tentar abrir uma ligação para um &X-Server;. `OpenDelay` é a duração da pausa (em segundos) entre tentativas sucessivas, `OpenRepeat` é o número de tentativas a fazer e `OpenTimeout` é a quantidade de tempo a gastar numa tentativa de ligação. Após `OpenRepeat` tentativas terem sido feitas, ou se passagem `OpenTimeout` segundos em qualquer tentativa de ligação, a tentativa de inicialização é considerada falhada.

  O valor por omissão é 5.

`StartAttempts`

- Quantas vezes deve o &kdm; tentar iniciar um ecrã `foreign` (estrangeiro) listado no ficheiro `Xservers` antes de desistir e de o desactivar. Os ecrãs locais são tentados apenas uma vez, e os ecrãs &XDMCP; a ligação é repetida indefinidamente pelo cliente (a não ser que a opção `-once` tenha sido dada ao &X-Server;).

  O valor por omissão é 4.

`ServerAttempts`

- Quantas vezes deve o &kdm; tentar iniciar um &X-Server; local. A inicialização inclui executá-lo e esperar que arranque.

  O valor por omissão é 1.

`ServerTimeout`

- Quantos segundos deve o &kdm; esperar pelo arranque de um &X-Server; local.

  O valor por omissão é 30.

`ServerCmd`

- A linha de comandos com que iniciar o &X-Server;, sem o número de ecrã e definição do VT. Lembre-se que, com alguns &X-Server;s (em particular, o do OpenSolaris), é necessário adicionar alguns argumentos ao `ServerArgsLocal` e `ServerArgsRemote`, mesmo que sejam iguais para ambos. Este texto está sujeito à repartição de palavras.

  O valor por omissão é algo razoável para o sistema em que o &kdm; foi compilado, como por exemplo `/usr/X11R6/bin/X`.

`ServerArgsLocal`

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

  Vazio por omissão.

`ServerArgsRemote`

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

  Vazio por omissão.

`ServerVT`

- O VT em que o &X-Server; deverá executar. O `ServerVTs` deverá ser usado em vez desta opção. Deixe-o em branco, para que o &kdm; atribua um VT automaticamente. Configure como `-1` para evitar a atribuição de um VT ao mesmo tempo - isto é necessário para as configurações com várias consolas físicas. De momento, apenas para Linux.

`ServerTTY`

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

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

  Vazio por omissão.

`ServerUID`

- O utilizador com o que o &X-Server; deverá ser executado. Um valor em branco corresponde a `root`.

  Vazio por omissão.

`PingInterval`

- Veja `PingTimeout`.

  O valor por omissão é 5.

`PingTimeout`

- Para descobrir quando os ecrãs remotos desaparecem, o &kdm; contacta-os regularmente. O `PingInterval` indica o tempo (em minutos) entre as tentativas e `PingTimeout` indica o tempo máximo (em minutos) de espera pela resposta ao pedido. Se o terminal não responder, a sessão é declarada morta e terminada.

  Se utilizar frequentemente terminais X que podem ficar isolados da máquina de gestão pode querer aumentar o tempo. O único problema que pode ocorrer é sessões continuarem a existir após um terminal ter sido acidentalmente desactivado.

  O valor por omissão é 5.

`TerminateServer`

- Se o &kdm; deve reiniciar o &X-Server; local depois da sessão terminar em vez de o limpar. Utilize isto se o &X-Server; perde memória ou bloqueia o sistema quando se tenta limpá-lo.

  O valor por omissão é false (falso).

`Authorize`

- Controla se o &kdm; gera e utiliza autorização para ligações ao &X-Server; local. Para ecrãs &XDMCP; a autorização pedida pelo ecrã é utilizada; os ecrãs não-&XDMCP; não suportam autorização de todo.

  O valor por omissão é `true` (verdadeiro).

`AuthNames`

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

  O valor por omissão é DEF_AUTH_NAME.

`ResetForAuth`

- Alguns &X-Server;s antigos voltam a ler o ficheiro de autorização quando o &X-Server; é limpo, em vez de quando verificam a ligação inicial. Como o &kdm; gera a informação de autorização mesmo antes de ligar a ecrã um &X-Server; antigo não recebe informações de autorização actualizadas. Esta opção faz com que o &kdm; envie um SIGHUP ao &X-Server; após configurar o ficheiro, causando uma limpeza adicional do &X-Server; que obriga a leitura da nova informação de autorização.

  O valor por omissão é false (falso).

`AuthFile`

- Este ficheiro é utilizado para comunicar os dados de autorização do &kdm; para o &X-Server;, utilizando a opção de linha de comando `-auth` do &X-Server;. Deve ser mantido numa directoria onde nem toda a gente possa escrever, já que se tal ocorre-se seria facilmente removido, desactivando o mecanismo de autorização do &X-Server;. Se não foi indicado, um nome aleatório é gerado de `AuthDir` e do nome do ecrã.

  Vazio por omissão.

`Resources`

- Esta opção indica o nome um ficheiro a ser carregado por `xrdb` como a base de dados de recursos da janela de raiz do ecrã 0. Os programas KDE normalmente não se interessam por recursos de X, por isto esta opção só é necessário se o programa indicado em `Setup` necessita de alguns recursos.

  Vazio por omissão.

`Xrdb`

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

  O valor por omissão é ${`x_bindir`}/xrdb.

`Setup`

- Este texto está sujeito à repartição de palavras. Indica um programa que é executado (como `root`) antes de oferecer a janela de saudação. Isto pode ser utilizado para mudar a aparência do ecrã em torno da saudação ou mostrar outras janelas (por exemplo, pode querer executar aqui o `xconsole`). O nome normal para este ficheiro é `Xsetup`. Veja kdmrc-xsetup.

  Vazio por omissão.

`Startup`

- Este texto está sujeito à repartição de palavras. Indica um programa que é executado (como `root`) após o processo de autenticação de utilizador. O nome normal para este ficheiro é `Xstartup`. Veja kdmrc-xstartup.

  Vazio por omissão.

`Reset`

- Este texto está sujeito à repartição de palavras. Indica um programa que é executado (como `root`) após a sessão terminar. O nome normal para este ficheiro é `Xreset`. Veja kdmrc-xreset.

  Vazio por omissão.

`Session`

- Este texto está sujeito à repartição de palavras. Indica o programa de sessão que é executado (como o utilizador a que pertence da sessão). O nome normal para este ficheiro é `Xsession`. Veja kdmrc-xsession.

  O valor por omissão é ${`x_bindir`}/xterm -ls -T.

`FailsafeClient`

- Se o programa `Session` não se executar, o &kdm; reverte para este programa. Este programa é executado sem argumentos, mas com as mesmas variáveis que a sessão teria tido (veja kdmrc-xsession).

  O valor por omissão é ${`x_bindir`}/xterm.

`UserPath`

- A variável de ambiente `PATH` para sessões (`Session`) não de `root`.

  O valor por omissão depende do sistema onde o &kdm; foi compilado.

`SystemPath`

- A variável de ambiente `PATH` para todos os programas excepto `Session`s (sessões) não `root`. Repare que é boa política não incluir `.` (a directoria actual) neste valor.

  O valor por omissão depende do sistema onde o &kdm; foi compilado.

`SystemShell`

- A variável de ambiente `SHELL` para todos os programas excepto `Session`.

  O valor por omissão é /bin/sh.

`UserAuthDir`

- Quando não é possível ao &kdm; escrever o ficheiro de autorização de utilizador normal ($`HOME`/.Xauthority), cria um ficheiro único nesta directoria e aponta a variável de ambiente `XAUTHORITY` para o ficheiro criado.

  O valor por omissão é /tmp.

`ForceUserAuthDir`

- Se for verdadeira, o `UserAuthDir` será usado incondicionalmente.

  O valor por omissão é false (falso).

`AutoReLogin`

- Se activado, o &kdm; reiniciar automaticamente a sessão após um estoiro do &X-Server; (ou se for morto utilizando Alt-Ctrl-BackSpace). Repare que activar esta opção abre um buraco de segurança: um bloqueio seguro de ecrã pode ser ultrapassado (a não ser que utilize o bloqueio de ecrã do &kde;).

  O valor por omissão é false (falso).

`AllowRootLogin`

- Se desactivado, não permitir ao `root` (e todos os outros utilizadores com UID = 0) ligar-se directamente.

  O valor por omissão é `true` (verdadeiro).

`AllowNullPasswd`

- Se desactivado, apenas os utilizadores com senha atribuídas se podem ligar.

  O valor por omissão é `true` (verdadeiro).

`AllowShutdown`

- Quem é que tem permissões para desligar o sistema. Isto aplica-se tanto à saudação como ao 'socket' de comandos.

  `None`

- não é mostrada a opção Desligar... de todo

`Root`

- a senha de `root` deverá ser introduzida para desligar

`All`

- toda a gente pode desligar a máquina

O valor por omissão é All (todos).

`AllowSdForceNow`

- A quem é permitido abortar sessões activas ao desligar.

  `None`

- não é permitido uma finalização forçada de todo

`Root`

- a senha de `root` deverá ser introduzida para desligar à força

`All`

- toda a gente poderá desligar a máquina à força

O valor por omissão é All (todos).

`DefaultSdMode`

- A escolha por omissão para a condição/temporização da finalização.

  `Schedule`

- desligar após todas as sessões activas terem terminado (possivelmente de uma vez)

`TryNow`

- desligar, se não existirem nenhumas sessões abertas, caso contrário não faz nada

`ForceNow`

- desligar incondicionalmente

O valor por omissão é Schedule (temporizar).

`ScheduledSd`

- Como oferecer opções de escalonamento da finalização:

  `Nunca`

- nunca, de todo

`Opcional`

- como um botão nas janelas de finalização simples

`Sempre`

- em vez das janelas de finalização simples

O valor por omissão é Never (nunca).

`NoPassEnable`

- Activa a autenticação automática neste ecrã. Use com bastante cuidado!

  O valor por omissão é false (falso).

`NoPassUsers`

- Os utilizadores que não necessitam de indicar uma senha para se autenticarem. Os itens que comecem por `@` representam todos os utilizadores no grupo com esse nome. `*` significa todos os utilizadores excepto `root` (e qualquer outro utilizador com UID = 0). Nunca adicione o `root`.

  Vazio por omissão.

`AutoLoginEnable`

- Activa a autenticação automática. Use com bastante cuidado!

  O valor por omissão é false (falso).

`AutoLoginAgain`

- Se for 'true' verdadeiro, fará a autenticação imediata após encerrar a sessão. Caso contrário, a autenticação automática só é efectuada quando for iniciada uma sessão.

  O valor por omissão é false (falso).

`AutoLoginDelay`

- O atraso em segundos antes de a autenticação automática ser despoletada. Isto é conhecido também por Autenticação Temporizada.

`AutoLoginUser`

- O utilizador a ligar automaticamente. Nunca escolha o `root`!

  Vazio por omissão.

`AutoLoginPass`

- A senha para o utilizador se ligar automaticamente. Esta não é obrigatória a menos que o utilizador se ligue num domínio de NIS ou de Kerberos. Se você usar esta opção, deverá fazer `chmod `600` `kdmrc`` por razões óbvias.

  Vazio por omissão.

`AutoLoginLocked`

- Bloqueia automaticamente a sessão iniciada automaticamente. Isto só funciona com as sessões do KDE.

  O valor por omissão é false (falso).

`SessionsDirs`

- Uma lista de pastas que contêm a definições de tipo de sessão. Ordenada pela prioridade (descendente).

  O valor por omissão é ${`kde_datadir`}/kdm/sessions.

`ClientLogFile`

- O ficheiro (relativo à pasta pessoal do utilizador) para onde direccionar o resultado da sessão.

  Os seguintes pares de caracteres são substituídas pelos seus valores:

  `%d`

- nome do ecrã actual

`%u`

- nome do utilizador actual

`%r`

- vazio da primeira vez. Ver abaixo.

`%%`

- um único `%`

Quando o nome do ficheiro construído não puder ser usado em segurança e a especificação conter `%``dados` `r`, serão tentados outros nomes - desta vez, a expansão de `%``dados` `r` como `dados`, seguido de um número aleatório.

O valor por omissão é .xsession-errors.

`ClientLogFallback`

- Salvaguarda onde o `ClientLogFile` não pode ser usado. São suportadas as mesmas expansões. Não use aqui locais relativos.

  O valor por omissão é /tmp/xerr-%u-%d%-r.

`UseSessReg`

- Indica se o registo 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 activo.

  O valor por omissão é `true` (verdadeiro).

### A classe de secções [X-*-Greeter] do &kdmrc;

Este classe de secção contém opções respeitantes à configuração da interface do &kdm; (saudação).

`GUIStyle`

- Indica o estilo de elementos gráficos da saudação. Vazio significa utilizar o valor predefinido que actualmente é o `Oxygen-air`.

  Vazio por omissão.

`ColorScheme`

- Indica o esquema de cores dos elementos da saudação. Vazio significa utilizar o valor predefinido que actualmente é o `Oxygen-air`.

  Vazio por omissão.

`LogoArea`

- O que deve ser mostrado no lado direito das linhas de entrada da saudação (se `UserList` estiver desligado) ou por cima delas (se `UserList` estiver ligado):

  `None`

- nada

`Logo`

- a imagem indicada por `LogoPixmap`

`Clock`

- um relógio analógico porreiro

O valor por omissão é Clock (relógio).

`LogoPixmap`

- A imagem a mostrar no caso da opção `LogoArea` ser `Logo`.

  Vazio por omissão.

`GreeterPos`

- As coordenadas relativas (percentagem do tamanho do ecrã; X,Y) onde é colocado o centro da saudação. O &kdm; alinha a saudação às margens do ecrã se caso contrário as ultrapassa-se.

  O valor por omissão é 50,50.

`GreeterScreen`

- O ecrã em que a saudação deverá ser mostrada para as configurações com vários ecrãs e Xinerama. A numeração começa em 0. Para Xinerama, corresponde à ordem de listagem na secção ServerLayout activa do XF86Config; -1 significa utilizar o ecrã do canto superior esquerdo, -2 significa usar o ecrã superior direito.

`GreetString`

- O cabeçalho da saudação. Uma saudação vazia significa desactivar.

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

  `%d`

- o nome do ecrã actual

`%h`

- o nome da máquina local, possivelmente sem o domínio

`%n`

- o nome do nó local, provavelmente o nome da máquina sem o domínio

`%s`

- sistema operativo

`%r`

- versão do sistema operativo

`%m`

- tipo da máquina (hardware)

`%%`

- um caracter `%`

O valor por omissão é Bem-vindo ao %s em %n.

`AntiAliasing`

- Se os tipos de letra na saudação deverão ser suavizados ('antialiased').

  O valor por omissão é false (falso).

`GreetFont`

- O tipo de letra para o cabeçalho da saudação. O valor está codificado.

  O valor por omissão é Serif 20 pt ,bold.

`StdFont`

- O tipo de letra normal para a saudação. O valor está codificado.

  O valor por omissão é Sans Serif 10pt.

`FailFont`

- O tipo de letra para a mensagem Autenticação Falhou. O valor está codificado.

  O valor por omissão é Sans Serif 10pt bold.

`NumLock`

- O que fazer com o modificador Num Lock na altura em que a saudação está em execução:

  `Off`

- desligar

`On`

- ligar

`Keep`

- não alterar o estado

O valor por omissão é Keep (manter).

`Language`

- A língua e localização a usar na saudação, codificado como $`LANGUAGE`. Se estiver em branco, é usada a configuração do ambiente.

  Vazio por omissão.

`UserCompletion`

- Activar a completação automática do campo de texto do nome de utilizador.

  O valor por omissão é false (falso).

`UserList`

- Mostra uma lista de utilizadores com nomes do UNIX, nomes verdadeiros e imagens.

  O valor por omissão é `true` (verdadeiro).

`ShowUsers`

- Esta opção controla quais utilizadores serão mostrados na vista de utilizadores (`UserList`) e/ou oferecidos para completação automática (`UserCompletion`). Se for `Selected`, `SelectedUsers` contém a lista final de utilizadores. Se for `NotHidden`, a lista inicial de utilizadores contém todos os utilizadores encontrados no sistema. Os utilizadores contidos em `HiddenUsers` são removidos da lista, tal como todos os utilizadores com um UID maior do que o indicado em `MaxShowUID` e os utilizadores com um UID diferente de zero menor do que o indicado em `MinShowUID`. Os itens em `SelectedUsers` e `HiddenUsers` que começam por `@` representam todos os utilizadores no grupo de utilizadores com esse nome. Finalmente, a lista de utilizadores é ordenada alfabeticamente, se a opção `SortUsers` estive activa.

  O valor por omissão é NotHidden (não escondido).

`SelectedUsers`

- Veja `ShowUsers`.

  Vazio por omissão.

`HiddenUsers`

- Veja `ShowUsers`.

  Vazio por omissão.

`MinShowUID`

- Veja `ShowUsers`.

`MaxShowUID`

- Veja `ShowUsers`.

  O valor por omissão é 65535.

`SortUsers`

- Veja `ShowUsers`.

  O valor por omissão é `true` (verdadeiro).

`FaceSource`

- Se `UserList` estiver activo, indica de onde o &kdm; obtém as imagens:

  `AdminOnly`

- from `<`FaceDir`>/$`USER`.face[.icon]`

`PreferAdmin`

- preferir <`FaceDir`>, em segunda opção $`HOME`

`PreferUser`

- ... e da forma inversa

`UserOnly`

- do ficheiro do utilizador `$`HOME`/.face[.icon]`.

As imagens podem estar em qualquer formato reconhecido pelo Qt, mas o ficheiro de cumprir as regras do &kdm;: `.face.icon` deve ser um ícone de tamanho 48x48, enquanto que `.face` deve ser uma imagem 300x300. Actualmente a imagem grande é utilizada apenas como uma segunda opção e é reduzida, mas no futuro pode ser mostrada no tamanho completo na área do logótipo ou numa dica. Para ser acessível ao &kdm;, as imagens terão de ser lidas por todos e as suas pastas-mães deverão ser executáveis por todos.

O valor por omissão é AdminOnly.

`FaceDir`

- Veja `FaceSource`.

  O valor por omissão é ${`kde_datadir`}/kdm/faces.

`PreselectUser`

- Indica se/qual utilizador deverá ser pré-seleccionado para autenticação:

  `None`

- não pré-seleccionar qualquer utilizador

`Previous`

- o utilizador que se ligou com sucesso da última vez

`Default`

- O utilizador indicado na opção `DefaultUser`

Se `FocusPasswd` estiver activo e um utilizador foi seleccionado previamente, a cursos é colocado automaticamente no campo de senha.

Activar a selecção prévia de um utilizador poderá ser considerado um buraco de segurança, dado que apresenta um utilizador válido a um potencial atacante, sendo que nesse caso este só necessitará de adivinhar a senha. Por outro lado, pode configurar o `DefaultUser` com um nome de utilizador falso.

O valor por omissão é None (nenhum).

`DefaultUser`

- Veja `PreselectUser`.

  Vazio por omissão.

`FocusPasswd`

- Veja `PreselectUser`.

  O valor por omissão é false (falso).

`EchoPasswd`

- Se for verdadeiro, a senha introduzida é representada com pontos. Caso contrário, não é apresentada qualquer espécie de reacção.

  O valor por omissão é `true` (verdadeiro).

`UseBackground`

- Se activado, &kdm; inicia automaticamente o programa `krootimage` para configurar o fundo do ecrã. Em caso contrário, o programa `Setup` é responsável pelo fundo.

  O valor por omissão é `true` (verdadeiro).

`BackgroundCfg`

- O ficheiro de configuração utilizado por `krootimage`. Contém uma secção com o nome `[Desktop0]` tal como o `kdesktoprc`. A suas opções não são descritas aqui; descubra as suas opções ou utilize o centro de controlo.

  O valor por omissão é ${`kde_confdir`}/kdm/backgroundrc.

`GrabInput`

- Para melhorar a segurança, o ecrã de boas-vindas poderá capturar os eventos do rato e do teclado, de modo que nenhuns outros clientes do X o possam analisar. Contudo, o mecanismo de autorização irá normalmente evitar que os clientes de X mal-intencionados se liguem antes de mais. Por consequência, a activação das capturas para os ecrãs locais não é necessária e só melhor marginalmente a segurança nos ecrãs remotos.

  A captura do rato irá inutilizar os teclados do ecrã.

  `Nunca`

- nunca capturar

`IfNoAuth`

- capturar se o ecrã não necessitar de autorização do X

`Sempre`

- capturar sempre

O valor por omissão é IfNoAuth.

`GrabServer`

- Para aumentar a segurança, a saudação captura o &X-Server; e depois a introdução de dados quando arranca. Esta opção indica se a captura do &X-Server; deve ser mantida durante a duração da leitura do nome e da senha. Quando desactivada, o &X-Server; deixa de ser capturado após a introdução de dados ser capturada; caso contrário o &X-Server; é capturado até a sessão começar.

  Activar esta opção desactiva `UseBackground` e `Setup`.

  O valor por omissão é false (falso).

`GrabTimeout`

- Esta opção indica o tempo máximo que o &kdm; espera pelo sucesso das capturas. Uma captura pode falhar se outro cliente X tiver o &X-Server; ou o teclado capturado, ou possivelmente se a latência da rede for muito elevada. Deve ter cuidado ao aumentar este tempo, uma vez que o utilizador pode ser enganado por uma janela semelhante no ecrã. Se a captura falhar, o &kdm; mata e reinicia o &X-Server; (se possível) e a sessão.

  O valor por omissão é 3.

`AuthComplain`

- Avisa, se o ecrã não tem autorização X. Este será o caso se

  - não foi possível criar o ficheiro de autorização para o &X-Server; local,

  - um ecrã remoto de &XDMCP; não pediu autorização ou

  - o ecrã é `foreign` (estrangeiro), tal como está indicado em `StaticServers`.

  O valor por omissão é `true` (verdadeiro).

`LoginMode`

- Indica se a saudação dos ecrãs locais deverá iniciar no selector das máquinas (remoto) ou no modo de autenticação (local) e se é permitido mudar para o outro modo.

  `LocalOnly`

- só é permitida a autenticação local

`DefaultLocal`

- inicia no modo local, mas permite a mudança para o modo remoto

`DefaultRemote`

- ... e da forma inversa

`RemoteOnly`

- só é permitida a escolha de uma máquina remota

O valor por omissão é LocalOnly.

`ChooserHosts`

- Uma lista separada por vírgulas com as máquinas a adicionar automaticamente ao menu de autenticação remota. O nome especial `*` significa que será feita uma difusão. Não tem efeito se `LoginMode` for `LocalOnly`.

  O valor por omissão é *.

`ForgingSeed`

- Utilizar este número como raiz aleatório ao forjar tipos de sessão gravados, etc. de utilizadores desconhecidos. Isto é utilizado para evitar dizer a atacantes quais são os utilizadores existentes por conclusão inversa. Este valor deve ser aleatório mas constante em todo o domínio de autenticação.

`ShowLog`

- Activa `xconsole` integrado no &kdm;. Repare que isto só pode ser activado para um ecrã de cada vez. Esta opção só está disponível se o &kdm; foi configurado (`configure`) com `--enable-kdm-xconsole`.

  O valor por omissão é false (falso).

`LogSource`

- A fonte de dados para o `xconsole` embutido no &kdm;. Se vazio, é pedido o redireccionamento do registo da consola de `/dev/console`. Não tem efeito se `ShowLog` estiver inactivo.

  Vazio por omissão.

`PluginsLogin`

- Indicar 'plugins' de conversação para a janela de autenticação; o primeira na lista será inicialmente seleccionado. Cada 'plugin' pode ser indicado como um nome base (que é expandido para `$`kde_modulesdir`/kgreet_`base``) ou como uma localização completa.

  Os 'plugins' de conversação são módulos que a saudação utiliza para obter dados de autenticação do utilizador. Actualmente, apenas o 'plugin' `classic` (clássico) é distribuído com o &kde;; mostra o conhecido formato de nome de utilizador e senha.

  O valor por omissão é classic.

`PluginsShutdown`

- O mesmo que `PluginsLogin`, para para o diálogo de desligar.

  O valor por omissão é classic.

`PluginOptions`

- Uma lista de opções no formato `Chave``=``Valor`. Os 'plugins' de conversação podem examinar estes valores; cabe a eles decidir quais as chaves que utilizam.

  Vazio por omissão.

`AllowConsole`

- Mostra a acção de Autenticação da Consola no ecrã de boas-vindas (se o `ServerTTY`/`ConsoleTTYs` estiverem configurados).

  O valor por omissão é `true` (verdadeiro).

`AllowClose`

- Mostrar a acção Reiniciar o Servidor X/Fechar Ligação na saudação.

  O valor por omissão é `true` (verdadeiro).

`Preloader`

- Um procura a executar enquanto a saudação está visível. É suposto pré-carregar tanto quando possível a sessão que vai ser iniciada (mais provavelmente).

  Vazio por omissão.

`UseTheme`

- Se o ecrã de boas-vindas deverá usar um tema. Lembre-se que o ecrã de boas-vindas deverá ser acessível, e os temas poderão não ter o suporte para funcionalidades como uma lista de utilizadores ou para métodos de autenticação alternativos.

  O valor por omissão é false (falso).

`Tema`

- O tema a usar para o ecrã de boas-vindas. Pode referenciar uma pasta ou um ficheiro XML.

  Vazio por omissão.

`AllowThemeDebug`

- Permite que a combinação Alt-Ctrl-D active/desactive a depuração do tema de boas-vindas.

  O valor por omissão é false (falso).

## Indicar &X-Server;s permanentes

Cada entrada indica um ecrã que deve ser gerido constantemente e que não está a utilizar &XDMCP;. Este método é tipicamente utilizado apenas &X-Server;s locais que são iniciados pelo &kdm;, mas o &kdm; pode também gerir &X-Server;s iniciados externamente (estrangeiro), quer corram na máquina local ou remotamente.

A sintaxe formal de uma especificação é

    nome ecrã [_classe ecrã]

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

O `nome do ecrã` deve ser algo que possa ser passado na opção `-display` a um programa X. Este texto é utilizado para gerar nomes de sessão específicos ao ecrã, por isso tenha cuidado com a escolha dos nomes. O nome dos ecrãs &XDMCP; é derivado do endereço do ecrã por resolução inversa do nome da máquina. Para fins de configuração, o prefixo `localhost` dos ecrãs &XDMCP; locais não é retirado para tornar possível distingui-lo de &X-Server;s locais iniciado pelo &kdm;.

A componente `classe de ecrã` é também utilizada das secções específicas a ecrãs. Isto é útil se tiver um grande conjunto de ecrãs semelhantes (por exemplo um conjunto de terminais X) e deseja configurar opções para grupos destes. Ao utilizar &XDMCP;, o ecrã é obrigado a indicar a classe do ecrã, por isso o manual do terminal X deve documentar o texto da classe de ecrã do dispositivo. Se não a indicar, pode correr o &kdm; em modo de depuração e usar o `grep` no registo procurando class.

A palavra-chave `reserve` indica ao &kdm; que deve iniciar o ecrã não quando o &kdm; arranca, mas sim quando lhe é pedido explicitamente pelo 'socket' de comandos. Se ecrãs de reserva forem indicados, o menu do &kde; vai ter um item Iniciar Nova Sessão perto do fundo; utilize isto para activar um ecrã de reserva com uma nova sessão de utilizador. O monitor muda para o novo ecrã e terá um minuto para se autenticar. Se não houveram mais ecrãs de reservas disponíveis, seleccionar o item de menu não tem qualquer efeito.

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

## Controlo de acesso &XDMCP;

O ficheiro indicado pela opção `AccessFile` fornece informações que o &kdm; utiliza para controlar o acesso aos ecrãs que pedem serviço via &XDMCP;. O ficheiro contém quatro tipos de entradas: entradas que controlar a resposta a procuras Direct e Broadcast, entradas que controlam a resposta a procuras Indirect, definições de macros para entradas Indirect e entradas que controlam em que interfaces de rede é que o &kdm; escuta procuras &XDMCP;. As linhas em branco são ignoradas, `#` é tratado como o delimitador de comentário e faz com que o resto da linha seja ignorado e `\` faz com que um nova linha imediatamente a seguir seja ignorada, permitindo que a lista de máquina indirectas ocupe várias linhas.

O formato das entradas Direct é simples, um nome de máquina ou um padrão, que é comparado com o nome de máquina do dispositivo do ecrã. Os padrões distinguem-se dos nomes de máquina pela inclusão de um ou mais meta-caracteres; `*` condiz com qualquer sequência de 0 ou mais caracteres e `?` condiz com qualquer único caracter. Se a entrada for um nome de máquina, todas as comparações são feitas utilizando endereços de rede, por isso qualquer nome que seja convertível para o endereço de rede correcto pode ser utilizado. Repare que apenas o primeiro endereço de rede devolvido para um nome de máquina é utilizado. Para padrões, apenas nomes canónicos de máquinas são utilizados na comparação, por isso verifique que não tenta condizer com nomes alternativos. Se preceder a entrada com um caracter `!` as máquina que condizem com a entrada são excluídas. Para apenas responder a procuras Direct para uma máquina ou padrão, esta pode ser seguida pela palavra-chave opcional `NOBROADCAST`. Isto pode ser utilizado para impedir o servidor &kdm; de aparecer em menus baseados em procuras Broadcast.

Uma entrada Indirect também contém um nome de máquina ou padrão, mas a seguir a esta tem uma lista de nomes de máquinas ou macros para onde as procuras devem ser reenviadas. As entradas Indirect também podem servir para excluir, no qual caso um nome de máquina falso (válido) deve ser indicado para tornar a entradas possível de distinguir de uma entradas Direct. Se compilado com suporte IPv6, também podem ser incluídos na lista de endereços para onde redireccionar pedidos endereços de grupos de 'multicast'. Se a lista de máquina indirectas contiver a palavra-chave `CHOOSER`, as procuras Indirect não são reenviadas, e em vez disso é mostrada um janela de escolha de máquina pelo &kdm;. A janela de escolha envia uma procura Direct para cada uma das máquinas restantes na lista e oferece um menu com todas as que responderem. A lista de máquina pode conter a palavra-chave `BROADCAST`, o que faz com que a janela de procura envie também uma procura Broadcast; repare que em alguns sistemas operativos, não é possível fazer difusão de pacotes UDP, por isso esta opção não funciona.

Ao verificar acesso a um ecrã em particular, cada entrada é verificada sequencialmente e a primeira entrada condizente determina a resposta. Entradas Direct e Broadcast são ignoradas ao procurar por uma entrada Indirect e vice-versa.

Uma definição de macro contém o nome de macro e uma lista de nomes de máquinas e outras macros para qual esta se expande. Para distinguir macros de nomes de máquinas, os nomes de macros começam pelo caracter `%`.

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

     LISTEN [interface [lista de multicast]]

Se forem indicadas uma ou mais linhas `LISTEN`, o &kdm; escuta pedidos &XDMCP; apenas das interfaces indicadas. `interface` pode ser um nome de máquina ou endereço IP que representa uma interface de rede nesta máquina, ou o caracter especial `*` para representar todas as interfaces de rede disponíveis. Se forem indicados endereços de grupos 'multicast' numa linha `LISTEN`, o &kdm; junta-se aos grupos 'multicast' na interface dada. Para 'multicasts' IPv6, a IANA atribuiu ff0`X`:0:0:0:0:0:0:12b como a gama de endereços 'multicast' permanentemente atribuída a &XDMCP;. O `X` no prefixo pode ser substituído por qualquer identificador de âmbito válido, como 1 para local ao nó, 2 para Local à ligação, 5 para local ao sítio e assim por diante (veja o IETF RFC 2373 ou o seu substituto para mais detalhes e definições de âmbitos). O &kdm; por omissão escuta no endereço de âmbito local à ligação ff02:0:0:0:0:0:0:12b para ter um comportamento mais semelhante à difusão em sub-redes IPv4. Se não forem dadas linhas `LISTEN`, o &kdm; escuta em todas as interfaces e junta-se ao grupo 'multicast' IPv6 por omissão de &XDMCP; (quando compilado com suporte IPv6). Para desactivar completamente a escuta de pedidos &XDMCP; pode ser indicada uma linha `LISTEN` sem endereços, mas é preferível utilizar a opção `[Xdmcp]` `Enable`.

## Programas suplementares

O seguintes programas são executados pelo &kdm; em várias etapas da sessão. São tipicamente 'shell scripts'.

Os programas de Configuração, Arranque e Limpeza são corridos como `root`, por isso deve ter cuidado com a segurança. O seu primeiro argumento é `auto` se a sessão resultar de uma ligação automática, em caso contrário não são passados argumentos.

### Programa de configuração

O programa `Xsetup` é executado após o &X-Server; ser iniciado ou limpo, mas antes da saudação ser mostrada. Este é o local para mudar o fundo do ecrã (se `UseBackground` estiver desligado) ou mostrar outras janelas que devem aparecer no ecrã junto com a saudação. Os recursos deste programa poderão ser colocados no ficheiro definido em `Resources`.

Para além das indicadas por `ExportList`, as seguintes variáveis de ambiente também são exportadas:

DISPLAY

- o nome do ecrã associado

PATH

- o valor de `SystemPath`

SHELL

- o valor de `SystemShell`

XAUTHORITY

- pode estar configurado como um ficheiro de autorização

DM_CONTROL

- o valor de `FifoDir`

O `GrabInput` pode fazer com que o &kdm; capture o teclado e o rato, impossibilitando que as outras janelas consigam receber dados. Se o `GrabServer` estiver definido, o `Xsetup` não será capaz de se ligar ao ecrã de todo.

### Programa de arranque

O programa `Xstartup` é executado como `root` quando o utilizador se liga. Este é o lugar onde colocar comandos para adicionar entradas ao `utmp` (o programa `sessreg` pode ser útil aqui), montar as pastas pessoais dos utilizadores de servidores de ficheiros, ou abortar a sessão de alguns requisitos não forem cumpridos (mas note que em sistemas modernos, muitas das tarefas já são tratados por módulos PAM).

Para além das indicadas por `ExportList`, as seguintes variáveis de ambiente também são exportadas:

DISPLAY

- o nome do ecrã associado

HOME

- a directoria de trabalho inicial do utilizador

LOGNAME

- o nome do utilizador

USER

- o nome do utilizador

PATH

- o valor de `SystemPath`

SHELL

- o valor de `SystemShell`

XAUTHORITY

- pode estar configurado como um ficheiro de autorização

DM_CONTROL

- o valor de `FifoDir`

O &kdm; espera que este programa termine antes de iniciar a sessão do utilizador. Se o valor de saída deste programa for diferente de zero, o &kdm; desliga a sessão e inicia outro ciclo de autenticação.

### Programa de sessão

O programa `Xsession` é o comando que é executado como a sessão do utilizador. Ẽ executado com as permissões do utilizador autorizado. Uma das palavras-chave `failsafe`, `default` ou`custom`, ou um texto para passar ao `eval` de uma 'shell' compatível com a Bourne é passado como o primeiro argumento.

Para além das indicadas por `ExportList`, as seguintes variáveis de ambiente também são exportadas:

DISPLAY

- o nome do ecrã associado

HOME

- a directoria de trabalho inicial do utilizador

LOGNAME

- o nome do utilizador

USER

- o nome do utilizador

PATH

- o valor de `UserPath` (ou `SystemPath` para sessões do utilizador `root`)

SHELL

- a 'shell' por omissão do utilizador

XAUTHORITY

- pode conter um ficheiro de autorização não usual

KRBTKFILE

- pode conter um nome de 'cache' de credenciais Kerberos4

KRB5CCNAME

- pode conter um nome de 'cache' de credenciais Kerberos5

DM_CONTROL

- o valor de `FifoDir`

XDM_MANAGED

- contém uma lista de parâmetros separados por vírgulas que a sessão pode achar interessantes, como a localização do 'socket' de comandos e as suas capacidades e que 'plugin' de conversação foi utilizado para a ligação

DESKTOP_SESSION

- o nome da sessão que o utilizar escolheu correr

### Programa de limpeza

Simétrico ao `Xstartup`, o programa`Xreset` é executado quando a sessão do utilizador termina. Executado como `root`, deve conter comandos que desfazem os efeitos dos comandos em `Xstartup`, removendo entradas do `utmp` ou desmontando directorias de servidores de ficheiros.

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