# I file che &kdm; usa per la configurazione

Questo capitolo documenta i file che controllano il comportamento di &kdm;. Alcuni parametri possono essere controllati dal modulo di &kcontrol;, ma non tutti.

## &kdmrc; - Il file di configurazioni principale di &kdm;

Il formato base del file è simil-INI. Le opzioni sono coppie chiave/valore, inserite in sezioni. Tutti gli elementi del file fanno distinzione fra maiuscole e minuscole. Gli errori di sintassi e gli identificatori di chiave/sezione non riconosciuti fanno emettere a &kdm; dei messaggi di errore non fatale.

Le righe che iniziano con `#` sono commenti; le righe vuote sono anch'esse ignorate.

Le sezioni sono indicate da `[`Nome della sezione`]`.

Puoi configurare ogni display di X individualmente.

Ogni display ha un nome che consiste del nome dell'host (che è vuoto per i display locali specificati in `StaticServers` o `ReserveServers`), un due punti, ed il numero del display. Inoltre, un display appartiene ad una classe di display (che può essere ignorata nella maggior parte dei casi).

Le sezioni con impostazioni specifiche per i display hanno la sintassi formale `[X-` host [ `:` numero [ `_` classe ] ] `-` sottosezione `]`

Tutte le sezioni con lo stessa sottosezione creano una classe di sezioni.

Puoi usare il carattere jolly `*` (corrisponde a qualunque cosa) per host, numero e classe. Puoi omettere i componenti finali; in tal caso è come se fossero dichiarati come `*`. La parte host può essere la specifica di un dominio come .inf.tu-dresden.de o il carattere jolly + (corrisponde a una stringa non vuota).

Da quale sezione un'impostazione venga presa è determinato dalle seguenti regole:

- Una corrispondenza esatta ha precedenza su una corrispondenza parziale (per la parte dell'host), che a sua volta ha precedenza su un carattere jolly (`+` ha precedenza su `*`).

- La precedenza decresce da sinistra a destra per corrispondenze egualmente corrette.

- Esempio: nome del display miohost.pippo:0, classe dpy

  - [X-miohost.pippo:0_dpy] precede

  - [X-miohost.pippo:0_*] (è lo stesso che [X-miohost.pippo:0]) che precede

  - [X-miohost.pippo:*_dpy] che precede

  - [X-miohost.pippo:*_*] (è lo stesso che [X-miohost.pippo]) che precede

  - [X-.pippo:*_*] (è lo stesso che [X-.pippo]) che precede

  - [X-+:0_dpy] che precede

  - [X-*:0_dpy] che precede

  - [X-*:0_*] (lo stesso che [X-*:0]) che precede

  - [X-*:*_*] (identico a [X-*]).

  - Queste sezioni non corrispondono a questo display:

    [X-suohost], [X-miohost.pippo:0_dec], [X-*:1], [X-:*]

Le sezioni comuni sono [X-*] (tutti i display), [X-:*] (tutti i display locali) e [X-:0] (il primo display locale).

Il formato per tutte le chiavi è ``chiave` `=` `valore``. Le chiavi sono valide solo nelle classi di sezioni per cui sono definite. Alcune chiavi non si applicano a display particolari, nel qual caso sono ignorate.

Se un'impostazione non viene trovata in nessuna sezione corrispondente, verrà usata l'impostazione predefinita.

I caratteri speciali devono essere preceduti dalla barra inversa (spazi iniziali e finali (`\s`), tabulazione (`\t`), avanzamento riga (`\n`), ritorno carrello (`\r`) e la barra inversa stessa (`\\`)).

Nelle liste, i campi sono separati da virgole senza spazi fra di loro.

Alcune stringhe di comando sono soggette ad una suddivisione in parole in stile sh semplificata: gli apici singoli (`'`) e doppi (`"`) hanno il significato usuale; la barra inversa si può usare per tutti i caratteri (non solo per quelli speciali). Nota che le barre inverse devono essere raddoppiate a causa del doppio livello di citazione.

Un file &kdmrc; originale è ampiamente commentato. Tutti i commenti andranno perduti se cambi questo file dall'interfaccia grafica di kcontrol.

### La sezione [General] di &kdmrc;

Questa sezione contiene opzioni globali che non sono adatte a sezioni specifiche.

`ConfigVersion`

  Questa opzione esiste solo per automatizzare in modo pulito gli aggiornamenti. Non deve essere cambiata, per non interferire con gli aggiornamenti futuri, e potrebbe impedire l'esecuzione di &kdm;.

`StaticServers`

  L'elenco dei display (&X-Server;) gestiti in modo permanente da &kdm;. I display com un nome host sono display esterni che devono essere già in esecuzione, gli altri sono display locali per cui &kdm; avvia un proprio &X-Server;; vedi `ServerCmd`. Ciascun display può appartenere ad una classe di display; la classe può essere apposta al nome del display, separandola con un carattere di sottolineatura. Vedi per i dettagli.

  Il valore predefinito è :0.

`ReserveServers`

  Elenco di display su richiesta. Vedi `StaticServers` per la sintassi.

  È vuota inizialmente.

`ServerVTs`

  Elenco dei terminali virtuali da allocare sugli &X-Server;. Per i numeri negativi è usato il valore assoluto, ed ilVT sarà allocato solo se il kernel dice che è a disposizione. Se &kdm; esaurisce questo elenco, allocherà VT liberi con il valore assoluto maggiore del più grande dell'elenco. Al momento è una configurazione utile solo con Linux.

  È vuota inizialmente.

`ConsoleTTYs`

  Questa opzione è per i sistemi operativi OS, Operating System) che gestiscono i terminali virtuali (VT, Virtual Terminal) sia da &kdm; che dall'OS stesso. Attualmente, solo Linux.

  Quando &kdm; cambia alla modalità console, inizia a sorvegliare tutte le linee TTY elencate qui (con un prefisso `/dev/`). Se nessuno è attivo per un certo periodo, &kdm; torna alla schermata di accesso di X.

  È vuota inizialmente.

`PidFile`

  Il file col nome specificato sarà creato per contenere la rappresentazione ASCII dell'ID del processo principale di &kdm;. il PID non sarà memorizzato se il nome del file è vuoto.

  È vuota inizialmente.

`LockPidFile`

  Questa opzione controlla se &kdm; debba usare un file di blocco per impedire a più gestori di display di interferire fra di loro.

  Il valore predefinito è true.

`AuthDir`

  Permette di specificare il nome della directory dove &kdm; memorizza i file di autorizzazione di &X-Server; durante l'inizializzazione della sessione. &kdm; si aspetta che il sistema ripulisca questa directory dai file obsoleti al riavvio.

  Il file di autorizzazione da usare per un display particolare può essere specificato con l'opzione `AuthFile` in [X-*-Core].

  Il valore predefinito è /var/run/xauth.

`AutoRescan`

  Questa opzione booleana controlla se &kdm; debba rileggere automaticamente i suoi file di configurazione se scopre che sono cambiati.

  Il valore predefinito è true.

`ExportList`

  Variabili di ambiente aggiuntive che &kdm; deve passare ai programmi che esegue. `LD_LIBRARY_PATH` e `XCURSOR_THEME` sono buone candidate; altrimenti, non dovrebbero essere necessarie molto spesso.

  È vuota inizialmente.

`RandomFile`

  Se il sistema non ha una fonte nativa di entropia, come /dev/urandom (vedi `RandomDevice`) e non ha un demone per l'entropia come EGD (vedi `PrngdSocket` e `PrngdPort`) in esecuzione, &kdm; ripiegherà sul proprio generatore di numeri pseudocasuali che, tra l'altro, potrà eseguire in seguito la somma di controllo di parti di questo file (che ovviamente dovrebbe cambiare frequentemente).

  Questa opzione non esiste in Linux e vari sistemi BSD.

  Il valore predefinito è /dev/mem.

`PrngdSocket`

  Se il sistema non ha una fonte nativa di entropia, come /dev/urandom (vedi `RandomDevice`), legge dati casuale da un demone per la generazione di numeri pseudocasuali, come EGD (http://egd.sourceforge.net) attraverso questo socket di dominio UNIX.

  Questa opzione non esiste in Linux e vari sistemi BSD.

  È vuota inizialmente.

`PrngdPort`

  Identica a `PrngdSocket`, tranne che per l'uso di un socket TCP su localhost.

`RandomDevice`

  Il percorso di un dispositivo a caratteri da cui &kdm; può leggere dati casuali. Se è vuoto significa che deve essere usato il dispositivo entropico preferito dal sistema se ve n'è uno.

  Questa opzione non esiste in OpenBSD, perché usa la funzione arc4_random al posto di un dispositivo.

  È vuota inizialmente.

`FifoDir`

  La directory in cui i socket dei comandi devono essere creati; lasciala vuota per disabilitarli.

  Il valore predefinito è /var/run/xdmctl.

`FifoGroup`

  Il gruppo a cui il socket dei comandi globali debba appartenere; può essere un nome o un ID numerico.

`DataDir`

  La directory in cui si vuole che &kdm; conservi i dati persistenti; fra tali dati c'è, ad esempio, l'ultimo utente che si è connesso con successo ad un certo display.

  Il valore predefinito è /var/lib/kdm.

`DmrcDir`

  La directory in cui si vuole che &kdm; conservi i file `.dmrc` degli utenti. È necessaria solo se le directory home degli utenti non sono leggibili prima dell'avvenuta connessione (come con AFS).

  È vuota inizialmente.

### La sezione [Xdmcp] di &kdmrc;

Questa sezione contiene le opzioni che controllano la gestione delle richieste &XDMCP; da parte di &kdm;.

`Enable`

  Se &kdm; debba ascoltare le richieste &XDMCP; in arrivo.

  Il valore predefinito è true.

`Port`

  Indica il numero della porta UDP che &kdm; usa per ascoltare le richieste &XDMCP; in arrivo. A meno che non debba fare debug del sistema, lascia il valore predefinito.

  Il valore predefinito è 177.

`KeyFile`

  L'autenticazione in stile XDM-AUTHENTICATION-1 di &XDMCP; richiede una chiave privata da condividere tra &kdm; ed il terminale. Questa opzione specifica il file contenente questi valori. Ciascuna voce del file consiste del nome del display e della chiave condivisa.

  È vuota inizialmente.

`Xaccess`

  Per impedire la connessione di servizi &XDMCP; non autorizzati e per permettere l'inoltro delle richieste &XDMCP; indirette, questo file contiene un database di hostname a cui è permesso l'accesso diretto a questa macchina,m o hanno un elenco di host a cui inoltrare le richieste. Il formato del file è descritto in .

  Il valore predefinito è ${`kde_confdir`}/kdm/Xaccess.

`ChoiceTimeout`

  Numero di secondi da attendere perché il display risponda dopo che l'utente ha selezionato l'host dal pannello di scelta. Se il display invia un IndirectQuery &XDMCP; entro questo tempo, la richiesta è inoltrata all'host selezionato; altrimenti, è considerata una richiesta per una nuova sessione ed il pannello di scelta è mostrato nuovamente.

  Il valore predefinito è 15.

`RemoveDomainname`

  durante la creazione del nome del display per i client &XDMCP;, il risolutore dei nomi tipicamente crea un nome di host completamente qualificato per il terminale. Poiché questo a volte può confondere, &kdm; elimina la porzione del nome del dominio se il nome dell'host è nello stesso dominio dell'host locale, quando questa opzione è selezionata.

  Il valore predefinito è true.

`SourceAddress`

  Usa l'IP numerico della connessione in arrivo sugli host multihome invece del nome dell'host. Ciò serve ad evitare la connessione all'interfaccia sbagliata che potrebbe essere inattiva in questo momento.

  Il valore predefinito è false.

`Willing`

  Specifica un programma eseguito (come root) quando un DirectQuery o un BroadcastQuery di &XDMCP; è ricevuto e questo host è configurato per offrire la gestione di un display &XDMCP;. L'output del programma può essere mostrato nella finestra di scelta. Se non viene specificato un programma, viene inviata la stringa Willing to manage.

  È vuota inizialmente.

### La sezione [Shutdown] di &kdmrc;

Questa sezione contiene opzioni globali sullo spegnimento del sistema.

`HaltCmd`

  Il comando (soggetto a suddivisione in parole) da eseguire per fermare/spegnere il sistema.

  Il valore predefinito è qualcosa di ragionevole per il sistema su cui è stato compilato &kdm;, come `/sbin/shutdown `-h` `now``.

`RebootCmd`

  Il comando (soggetto a suddivisione in parole) da eseguire per riavviare il sistema.

  Il valore predefinito è qualcosa di ragionevole per il sistema su cui è stato compilato &kdm;, come `/sbin/shutdown `-r` `now``.

`AllowFifo`

  Se è permesso spegnere il sistema attraverso il socket globale dei comandi.

  Il valore predefinito è false.

`AllowFifoNow`

  Se è permesso interrompere le sessioni attive allo spegnimento del sistema attraverso il socket globale dei comandi.

  Non ha effetto a meno che `AllowFifo` non sia abilitata.

  Il valore predefinito è true.

`BootManager`

  Il gestore del boot che &kdm; deve usare per offrire le opzioni di boot nella finestra di spegnimento.

  `None`

    nessun gestore del boot

  `Grub`

    Il gestore del boot Grub

  `Lilo`

    Il gestore del boot Lilo (solo per Linux i386 e x86-64)

  Il valore predefinito è None.

### La classe di sezioni [X-*-core] di &kdmrc;

Questa classe di sezioni contiene le opzioni che riguardano la configurazione del backend di &kdm;.

`OpenDelay`

  Vedi `OpenRepeat`.

  Il valore predefinito è 15.

`OpenTimeout`

  Vedi `OpenRepeat`.

  Il valore predefinito è 120.

`OpenRepeat`

  Queste opzioni controllano il comportamento di &kdm; quando prova a connettersi ad un &X-Server;. `OpenDelay` è la lunghezza della pausa (in secondi) tra i tentativi successivi, `OpenRepeat` è il numero di tentativi da effettuare e `OpenTimeout` india quanto tempo usare per un tentativo di connessione. Dopo che `OpenRepeat` tentativi sono stati fatti, o se sono passati `OpenTimeout` secondi in uno dei tentativi di connessione, il tentativo di avvio è considerato non riuscito.

  Il valore predefinito è 5.

`StartAttempts`

  Quante volte &kdm; deve provare ad avviare un display `estraneo` elencato in `StaticServers` prima di rinunciare e disabilitarlo. I display locali sono provati una sola volta, ed i display &XDMCP; sono controllati senza limiti ai tentativi dal client (a meno che l'opzione `-once` non sia data all'&X-Server;).

  Il valore predefinito è 4.

`ServerAttempts`

  Quante volte &kdm; deve provare ad avviare un &X-Server; locale. L'avvio include la sua esecuzione e l'attesa perché sia in piedi.

  Il valore predefinito è 1.

`ServerTimeout`

  Quanti secondi &kdm; debba aspettare perché il server X locale sia in piedi.

  Il valore predefinito è 15.

`ServerCmd`

  La riga di comando per l'avvio dell'&X-Server;, senza il numero del display e la specifica del VT. Questa stringa è soggetta alla suddivisione in parole.

  Il valore predefinito è qualcosa di ragionevole per il sistema su cui è stato compilato &kdm;, come `/usr/X11R6/bin/X`.

`ServerArgsLocal`

  Argomenti aggiuntivi per &X-Server; per le sessioni locali. Questa stringa è soggetta alla suddivisione in parole.

  È vuota inizialmente.

`ServerArgsRemote`

  Argomenti aggiuntivi per &X-Server; per le sessioni remote. Questa stringa è soggetta alla suddivisione in parole.

  È vuota inizialmente.

`ServerVT`

  Il VT su cui l'&X-Server; deve girare. Dovrebbe essere usata `ServerVTs` invece di questa opzione. Lasciala a zero per permettere a &kdm; di assegnare un VT automaticamente. Imposta a `-1` per evitare del tutto l'assegnamento di un VT — ciò è necessario per le configurazioni con più console fisiche. Attualmente questa opzione è solo per Linux.

`ServerTTY`

  Questa opzione serve per gli OS senza VT, o in &kdm; o nell'OS stesso. Attualmente, si applica per tutti gli OS tranne Linux.

  Quando &kdm; va in modalità console, comincia a sorvegliare l'attività di questa linea TTY (specificata senza il prefisso `/dev/`). Se la linea non è usata per un certo tempo, &kdm; torna alla schermata di accesso di X.

  È vuota inizialmente.

`PingInterval`

  Vedi `PingTimeout`.

  Il valore predefinito è 5.

`PingTimeout`

  Per scoprire quando scompaiono i display remoti, &kdm; invia loro un ping ad intervalli regolari. `PingInterval` specifica il tempo (in minuti) fra i ping e `PingTimeout` specifica il massimo periodo di tempo (in minuti) da attendere perché il terminale risponda alla richiesta. Se il terminale non risponde, la sessione è dichiarata morta e viene fatta terminare.

  Se usi frequentemente terminali X che possono rimanere isolati dall'host di gestione, puoi preferire aumentare il tempo di scadenza. L'unica preoccupazione è che le sessioni continueranno ad esistere dopo che il terminale è stato accidentalmente disabilitato.

  Il valore predefinito è 5.

`TerminateServer`

  Se &kdm; deve riavviare l'&X-Server; locale dopo l'uscita di una sessione invece di ripristinarlo ai valori predefiniti. Usa questa opzione se l'&X-Server; perde memoria o schianta il sistema durante i tentativi di ripristino.

  Il valore predefinito è false.

`ResetSignal`

  Il numero di segnale da usare per reimpostare l'&X-Server; locale.

  Il valore predefinito è 1 (SIGHUP).

`TermSignal`

  Il numero di segnale da usare per far terminare l'&X-Server; locale.

  Il valore predefinito è 15 (SIGTERM).

`Authorize`

  Controlla se &kdm; genera ed usa l'autorizzazione per le connessioni degli &X-Server; locali. Per i display &XDMCP; l'autorizzazione richiesta è sempre usata; i display estranei non-&XDMCP; non supportano assolutamente l'autorizzazione.

  Il valore predefinito è true.

`AuthNames`

  Se `Authorize` vale true, usa i meccanismi di autorizzazione elencati qui. L'autorizzazione MIT-MAGIC-COOKIE-1 authorization è sempre disponibile; possono esserci anche XDM-AUTHORIZATION-1, SUN-DES-1 MIT-KERBEROS-5, a seconda di della configurazione a tempo di compilazione.

  Il valore predefinito è DEF_AUTH_NAME.

`ResetForAuth`

  Alcuni vecchi &X-Server; leggono il file di autorizzazione durante la reimpostazione dell'&X-Server;, invece del momento in cui viene controllata la connessione iniziale. Poiché &kdm; genera le informazioni sull'autorizzazione subito prima di connettersi al display, un vecchio &X-Server; non otterrebbe informazioni aggiornate. Questa opzione può essere usata perché &kdm; invii un SIGHUP all'&X-Server; dopo aver preparato il file, in modo da reinizializzare l'&X-Server; che quindi leggerà le informazioni corrette.

  Il valore predefinito è false.

`AuthFile`

  Questo file è usato per comunicare i dati di autorizzazione da &kdm; all'&X-Server;, usando l'opzione `-auth` della riga di comando di &X-Server;. Dovrebbe essere tenuto in una directory che non sia scrivibile dal mondo, poiché potrebbe essere rimosso facilmente, disabilitando il meccanismo di autenticazione di &X-Server;. Se non è specificato, verrà generato un nome casuale in base al valore di `AuthDir` ed al nome del display.

  È vuota inizialmente.

`Resources`

  Questa opzione specifica il nome del file da caricare da `xrdb` come il database delle risorse sulla finestra radice dello schermo 0 del display. I programmi KDE di solito non fanno uso delle risorse di X, per cui questa opzione è necessaria solo se il programma `Setup` richiede alcune X-resource.

  È vuota inizialmente.

`Xrdb`

  Il programma `xrdb` da usare per leggere il file X-resources specificato in `Resources`. Il comando è soggetto alla suddivisione delle parole.

  Il valore predefinito è ${`x_bindir`}/xrdb.

`Setup`

  Questa stringa è soggetta alla suddivisione in parole. Specifica un programma da lanciare (come utente root) prima di offrire la schermata di benvenuto. Può essere usata per cambiare l'aspetto dello schermo che fa da sfondo alla finestra di benvenuto, o per mettere altre finestre (ad esempio, puoi voler far partire `xconsole` qui). Il nome convenzionale del file usato qui è `Xsetup`. Vedi .

  È vuota inizialmente.

`Startup`

  Questa stringa è soggetta alla suddivisione in parole. Specifica un programma che viene eseguito (come root) dopo che il processo di autenticazione dell'utente ha avuto successo. Il nome convenzionale del file usato qui è `Xstartup`. Vedi .

  È vuota inizialmente.

`Reset`

  Questa stringa è soggetta alla suddivisione in parole. Specifica un programma da lanciare (come root) dopo che la sessione è terminata. Il nome convenzionale del file usato qui è `Xreset`. Vedi .

  È vuota inizialmente.

`Session`

  Questa stringa è soggetta alla suddivisione in parole. Specifica un programma da lanciare (come l'utente che possiede la sessione) della sessione. Il nome convenzionale del file usato qui è `Xsession`. Vedi .

  Il valore predefinito è ${`x_bindir`}/xterm -ls -T.

`FailsafeClient`

  Se il programma `Session` non viene eseguito con successo, &kdm; ripiegherà su questo programma. Questo programma è eseguito senza argomenti, ma viene eseguito con le stesse variabili di ambiente che avrebbe avuto la sessione (vedi ).

  Il valore predefinito è ${`x_bindir`}/xterm.

`UserPath`

  La variabile di ambiente `PATH` per le sessioni non-root.

  Il valore predefinito dipende dal sistema su cui è stato compilato &kdm;.

`SystemPath`

  La variabile di ambiente `PATH` per tutti i programmi tranne le sessioni non-root. Nota che è una buona pratica l'esclusione di `.` (la directory corrente) da questa voce.

  Il valore predefinito dipende dal sistema su cui è stato compilato &kdm;.

`SystemShell`

  La variabile di ambiente `SHELL` per tutti i programmi tranne `Session`.

  Il valore predefinito è /bin/sh.

`UserAuthDir`

  Quando &kdm; non riesce a scrivere il solito file di autorizzazione del server ($`HOME`/.Xauthority), crea un nome di file univoco e fa puntare la variabile d'ambiente `XAUTHORITY` al file creato.

  Il valore predefinito è /tmp.

`ForceUserAuthDir`

  Se vale true, `UserAuthDir` sarà usato incondizionatamente.

  Il valore predefinito è false.

`AutoReLogin`

  Se è abilitata, &kdm; riavvia automaticamente una sessione dopo un crash dell'&X-Server; (o in caso di interruzione con Alt-Ctrl-Backspace). Nota che abilitando questa opzione si apre un buco di sicurezza: un blocco sicuro del display può essere aggirato (a meno che non venga usato il bloccaschermo integrato di &kde;).

  Il valore predefinito è false.

`AllowRootLogin`

  Se disabilitata, non permette a root (e a qualsiasi utente con UID = 0) di accedere direttamente al sistema.

  Il valore predefinito è true.

`AllowNullPasswd`

  Se disabilitata, dolo gli utenti a cui è assegnata una password possono accedere al sistema.

  Il valore predefinito è true.

`AllowShutdown`

  A chi è permesso lo spegnimento del sistema. Si applica sia allo schermo di benvenuto che al socket dei comandi.

  `None`

    nessuna voce Spegni... verrà mostrata

  `Root`

    la password di root deve essere immessa per lo spegnimento

  `All`

    tutti possono spegnere la macchina

  Il valore predefinito è All.

`AllowSdForceNow`

  A chi è permessa l'interruzione delle sessioni attive allo spegnimento.

  `None`

    non è permesso affatto lo spegnimento forzato

  `Root`

    la password di root deve essere immessa per lo spegnimento forzato

  `All`

    tutti possono spegnere la macchina in modo forzato

  Il valore predefinito è All.

`DefaultSdMode`

  La scelta predefinita per la condizione/temporizzazione dello spegnimento.

  `Schedule`

    spegne il computer dopo che tutte le sessioni attive sono uscite (eventualmente tutte assieme)

  `TryNow`

    spegne il computer se nessuna sessione attiva è aperta; altrimenti, non fa niente

  `ForceNow`

    spegne il computer incondizionatamente

  Il valore predefinito è Schedule.

`ScheduledSd`

  Come offrire le opzioni per la pianificazione dello spegnimento:

  `Never`

    mai

  `Optional`

    come pulsante in una semplice finestra di dialogo per lo spegnimento

  `Always`

    al posto di una semplice finestra di dialogo per lo spegnimento

  Il valore predefinito è Never.

`NoPassEnable`

  Abilita la connessione al display senza password. Usa con molta attenzione!

  Il valore predefinito è false.

`NoPassUsers`

  Gli utenti che non devono fornire una password per l'accesso. Gli elementi con il prefisso `@` rappresentano tutti gli utenti del gruppo nominato da tale elemento. `*` indica tutti gli utenti tranne root (e qualsiasi altro utente con UID = 0). Non elencare mai l'utente root.

  È vuota inizialmente.

`AutoLoginEnable`

  Abilita la connessione automatica. Usa con estrema attenzione!

  Il valore predefinito è false.

`AutoLoginAgain`

  Se è true, si connetta automaticamente dopo una disconnessione. Se false, la connessione automatica è effettuata solo quando viene avviata una sessione del display.

  Il valore predefinito è false.

`AutoLoginDelay`

  Il ritardo in secondi prima che una connessione automatica venga avviata. Questo è anche noto come Accesso temporizzato.

`AutoLoginUser`

  L'utente da connettere automaticamente Non usare mai l'utente root!

  È vuota inizialmente.

`AutoLoginPass`

  La password dell'utente per l'accesso automatico. Non è richiesta se l'utente non deve accedere ad un dominio NIS o Kerberos. Se usi questa opzione, dovresti usare `chmod `600` `kdmrc`` per motivi ovvi.

  È vuota inizialmente.

`AutoLoginLocked`

  Blocca automaticamente la sessione avviata. Funziona solo con le sessioni di KDE.

  Il valore predefinito è false.

`SessionsDirs`

  Un elenco delle directory contenenti le definizioni dei tipi di sessione.

  Il valore predefinito è ${`kde_datadir`}/kdm/sessions.

`ClientLogFile`

  Il file (con percorso relativo alla directory home dell'utente) a cui redirigere l'output della sessione.

  Le seguenti coppie di caratteri sono sostituite dal loro valore:

  `%d`

    nome del display attuale

  `%u`

    nome utente dell'utente attuale

  `%r`

    inizialmente vuoto. Vedi sotto.

  `%%`

    un solo `%`

  Quando il nome costruito per il file non può essere usato in sicurezza e la specifica contiene `%`qualcosa `r`, verranno provati altri nomi – questa volta espandendo `%`qualcosa `r` in qualcosa seguito da un numero casuale.

  Il valore predefinito è .xsession-errors.

`ClientLogFallback`

  Ripiego quando `ClientLogFile` non si può usare. Le stesse espansioni sono utilizzate. Non usare percorsi relativi in questo campo.

  Il valore predefinito è /tmp/xerr-%u-%d%-r.

`UseSessReg`

  Specifica se la registrazione integrata su utmp/wtmp/lastlog di &kdm; debba essere usata. Se non lo è, dovrebbe essere usato lo strumento `sessreg` negli script `Startup` e `Reset`, o, in alternativa, il modulo pam_lastlog dovrebbe essere usato sui sistemi che usano PAM.

  Il valore predefinito è true.

### La classe di sezione [X-*-Greeter] di &kdmrc;

Questa classe di sezioni contiene le opzioni che riguardano la configurazione del programma di benvenuto di &kdm;.

`GUIStyle`

  Specifica lo stile dei controlli per lo schermo di benvenuto. Se è vuoto indica di usare lo stile predefinito, che attualmente è `Plastik`.

  È vuota inizialmente.

`ColorScheme`

  Specifica lo schema di colori per i controlli dello schermo di benvenuto. Se è vuoto indica di usare lo schema predefinito, che attualmente è grigio-giallino con qualche elemento blu e giallo.

  È vuota inizialmente.

`LogoArea`

  Che cosa mostrare nella schermata di benvenuto sul lato destro delle caselle di testo (se `UserList` è disabilitata) o sopra di esse (se `UserList` è abilitata):

  `None`

    nulla

  `Logo`

    l'immagine specificata da `LogoPixmap`

  `Clock`

    un bell'orologio analogico

  Il valore predefinito è Clock.

`LogoPixmap`

  L'immagine da mostrare nella schermata di benvenuto se `LogoArea` vale `Logo`.

  È vuota inizialmente.

`GreeterPos`

  Le coordinate relative (percentuale della dimensione dello schermo; X,Y) in cui posizionare il centro della schermata di benvenuto. &kdm; allinea la finestra ai bordi dello schermo che incrocerebbe altrimenti.

  Il valore predefinito è 50,50.

`GreeterScreen`

  Lo schermo da usare per il benvenuto in una configurazione Xinerama o multi-head. La numerazione inizia da 0. Pre Xinerama, corrisponde all'ordine dell'elenco della sezione ServerLayout di XF86Config; -1 indica di usare lo schermo in alto a sinistra, -2 di usare quello in alto a destra.

`GreetString`

  Il titolo della schermata di benvenuto. Un messaggio vuoto indica nessun titolo.

  Le seguenti coppie di caratteri sono sostituite dal loro valore:

  `%d`

    il nome del display attuale

  `%h`

    il nome dell'host locale, eventualmente con il nome del dominio

  `%n`

    il nome del nodo locale, con ogni probabilità il nome dell'host senza il nome del dominio

  `%s`

    il sistema operativo

  `%r`

    la versione del sistema operativo

  `%m`

    tipo di macchina (hardware)

  `%%`

    un semplice carattere `%`

  Il valore predefinito è Welcome to %s at %n.

`AntiAliasing`

  Se i caratteri usati nella schermata di benvenuto debbano avere l'antialias.

  Il valore predefinito è false.

`GreetFont`

  Il tipo di caratteri da usare per il titolo della schermata di benvenuto.

  Il valore predefinito è Serif,20,bold.

`StdFont`

  Il tipo di carattere normale da usare nella schermata di benvenuto.

  Il valore predefinito è Sans Serif,10.

`FailFont`

  Il tipo di caratteri da usare per il messaggio Connessione fallita.

  Il valore predefinito è Sans Serif,10,bold.

`NumLock`

  Che cosa fare del modificatore BlocNum per il tempo in cui lo schermo di benvenuto è in esecuzione:

  `Off`

    disattivato

  `On`

    attivato

  `Keep`

    non cambiare stato

  Il valore predefinito è Keep.

`Language`

  Lingua e locale da usare per la schermata di benvenuto, codificata come $`LC_LANG`.

  Il valore predefinito è en_US.

`UserCompletion`

  Abilita il completamento automatico nella casella di testo del nome utente.

  Il valore predefinito è false.

`UserList`

  Mostra un elenco con i nomi utente di Unix, i nomi reali e le immagini nella schermata di benvenuto.

  Il valore predefinito è true.

`ShowUsers`

  Questa opzione controlla quali utenti saranno mostrati nella lista degli utenti (`UserList`) o offerti per l'autocompletamento (`UserCompletion`). Se è impostata a `Selected`, `SelectedUsers` contiene l'elenco definitivo degli utenti. Se è `NotHidden`, la lista iniziale degli utenti contiene tutti gli utenti del sistema. Gli utenti contenuti in `HiddenUsers` sono eliminati dalla lista, come anche gli utenti con UID diversa da zero e minore di `MinShowUID` o maggiore di `MaxShowUID`. Le voci in `SelectedUsers` e `HiddenUsers` che hanno il prefisso `@` rappresentano tutti gli utenti del gruppo indicato dalla voce. Infine, la lista degli utenti sarà ordinata alfabeticamente, se `SortUsers` è abilitata.

  Il valore predefinito è NotHidden.

`SelectedUsers`

  Vedi `ShowUsers`.

  È vuota inizialmente.

`HiddenUsers`

  Vedi `ShowUsers`.

  È vuota inizialmente.

`MinShowUID`

  Vedi `ShowUsers`.

`MaxShowUID`

  Vedi `ShowUsers`.

  Il valore predefinito è 65535.

`SortUsers`

  Vedi `ShowUsers`.

  Il valore predefinito è true.

`FaceSource`

  Se `UserList` è abilitata, questa specifica da dove &kdm; debba ottenere le immagini:

  `AdminOnly`

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

  `PreferAdmin`

    preferisce <`FaceDir`>, ricade in $`HOME`

  `PreferUser`

    ...e viceversa

  `UserOnly`

    Dalla cartella `$`HOME`/.face[.icon]` dell'utente

  Le immagini possono essere in uno qualsiasi dei formati che Qt riconosce, ma il nome del file deve corrispondere alle aspettative di &kdm;: `.face.icon` dovrebbe essere un'icona 48x48, mentre `.face` dovrebbe essere un'immagine 300x300. Attualmente l'immagine grande è usata solo come ripiego ed è riscalata, ma in futuro potrebbe essere mostrata a dimensione intera nell'area del logo o come suggerimento.

  Il valore predefinito è AdminOnly.

`FaceDir`

  Vedi `FaceSource`.

  Il valore predefinito è ${`kde_datadir`}/kdm/faces.

`PreselectUser`

  Specifica se e quale utente debba essere preselezionato per la connessione:

  `None`

    non preselezionare nessun utente

  `Previous`

    l'utente che si è connesso con successo per ultimo

  `Default`

    l'utente specificato nell'opzione `DefaultUser`

  Se `FocusPasswd` è abilitata e l'utente è preselezionato, il cursore è posizionato automaticamente nella casella di immissione della password.

  L'abilitazione della preselezione dell'utente può essere considerata un buco di sicurezza, perché fornisce un nome di accesso valido al potenziale attaccante, per cui dovrà solo indovinare la password. D'altra parte, si potrebbe impostare `DefaultUser` ad un nome inesistente.

  Il valore predefinito è None.

`DefaultUser`

  Vedi `PreselectUser`.

  È vuota inizialmente.

`FocusPasswd`

  Vedi `PreselectUser`.

  Il valore predefinito è false.

`EchoPasswd`

  Se questa opzione vale true, la password inserita è mostrata come pallini, altrimenti non verrà data nessuna indicazione della pressione dei tasti.

  Il valore predefinito è true.

`UseBackground`

  Se questa opzione è abilitata, &kdm; avvierà automaticamente il programma `krootimage` per preparare uno sfondo; altrimenti, il programma `Setup` è responsabile per lo sfondo.

  Il valore predefinito è true.

`BackgroundCfg`

  Il file di configurazione da usare per `krootimage`. Contiene una sezione chiamata `[Desktop0]` analoga a quella di `kdesktoprc`. Le sue opzioni non sono descritte qui; dovrai indovinarne il significato o usare il centro di controllo.

  Il valore predefinito è ${`kde_confdir`}/kdm/backgroundrc.

`GrabServer`

  Per migliorare la sicurezza, lo schermo di benvenuto si impadronisce dell'&X-Server; e poi intercetta tutti gli eventi di tastiera quando viene avviato. Questa opzione specifica se il grab dell'&X-Server; debba essere tenuto per tutta la durata della lettura di nome e password. Quando è disabilitata, l'&X-Server; è rilasciato dopo il grab della tastiera; altrimenti, è effettuato il grab dell'&X-Server; fino ad un attimo prima dell'inizio della sessione dell'utente.

  Abilitare questa opzione disabilita `UseBackground` e `Setup`.

  Il valore predefinito è false.

`GrabTimeout`

  Questa opzione specifica il periodo di tempo massimo per cui &kdm; aspetta che il grab abbia successo. Un grab può fallire se altri client X hanno già il grab dell'&X-Server; o della tastiera, o anche se la latenza della rete è molto alta. Stai molto attento se aumenti questo valore, perché gli utenti possono essere ingannati da finestre dall'aspetto identico sul display. Se un grab fallisce, &kdm; termina e riavvia l'&X-Server; (se possibile) e la sessione.

  Il valore predefinito è 3.

`AuthComplain`

  Avverte se un display non ha X-authorization. Questo succede se

  - il file di autorizzazione per un server X locale non può essere creato,

  - un display remoto di &XDMCP; non ha richiesto alcuna autorizzazione oppure

  - il display è un display estraneo specificato in `StaticServers`.

  Il valore predefinito è true.

`LoginMode`

  Specifica se lo schermo di benvenuto dei display locali debba partire in modalità di scelta dell'host (remoto) o di avvio (locale) e se è permesso il cambio di modalità.

  `LocalOnly`

    è possibile il solo accesso locale

  `DefaultLocal`

    inizia in modo locale, ma permette di cambiare al modo remoto

  `DefaultRemote`

    ...e viceversa

  `RemoteOnly`

    è possibile solo la scelta di un host remoto

  Il valore predefinito è LocalOnly.

`ChooserHosts`

  Un elenco di host da aggiungere automaticamente al menu di accesso remoto. Il nome speciale `*` indica una ricerca broadcast. Non a effetto se `LoginMode` è `LocalOnly`.

  Il valore predefinito è *.

`ForgingSeed`

  Usa questo numero come seme casuale per creare i tipi di sessione salvati ecc. degli utenti sconosciuti. Ciò è usato per evitare di lasciar trapelare i dati degli utenti ad un attacco informatico. Il valore dovrebbe essere casuale ma costante in tutto il dominio di accesso.

`ShowLog`

  Abilita la `xconsole` integrata di &kdm;. nota che questa può essere abilitata per un solo display per volta. È disponibile solo se &kdm; è stato configurato con `configure` `--enable-kdm-xconsole`.

  Il valore predefinito è false.

`LogSource`

  La fonte dei dati per l'`xconsole` integrata di &kdm;. Se è vuota, viene richiesta la redirezione del log da `/dev/console`. Non ha effetto se `ShowLog` è disabilitata.

  È vuota inizialmente.

`PluginsLogin`

  Specifica il plugin di conversazione per il dialogo di accesso; inizialmente è selezionato il primo della lista. Ciascun plugin può essere specificato come nome base (che viene espanso in `$`kde_modulesdir`/kgreet_base`) o come nome-percorso completo.

  I plugin di conversazione sono moduli per la schermata di benvenuto che ottengono i dati di autenticazione per l'utente. Attualmente viene fornito con &kde; solo il plugin `classic`; fornisce un ben noto modulo per l'inserimento di nome utente e password.

  Il valore predefinito è classic.

`PluginsShutdown`

  Identica a `PluginsLogin`, ma per la finestra di spegnimento.

  Il valore predefinito è classic.

`PluginOptions`

  Un elenco di opzioni nella forma Chiave`=`Valore. I plugin di conversazione può interrogare queste impostazioni; sta a loro stabilire quali siano le chiavi possibili.

  È vuota inizialmente.

`AllowConsole`

  Mostra l'azione Accesso alla console nella schermata di benvenuto (se almeno una di `ServerTTY`/`ConsoleTTYs` è configurata).

  Il valore predefinito è true.

`AllowClose`

  Mostra l'azione Riavvia il server X/Chiudi la connessione nella schermata di benvenuto.

  Il valore predefinito è true.

`Preloader`

  Un programma da eseguire quando è visibile lo schermo di benvenuto. È fatto per precaricare il più possibile della sessione che (con maggior probabilità) verrà avviata.

  È vuota inizialmente.

`UseTheme`

  Se la schermata di benvenuto debba usare un tema.

  Il valore predefinito è false.

`Theme`

  Il tema da usare per lo schermo di benvenuto. Può puntare ad una directory o ad un file XML.

  È vuota inizialmente.

## Specificare server X permanenti

Ciascuna voce della lista `StaticServers` indica un display che deve essere costantemente gestito e che non usa &XDMCP;. Questo metodo è tipicamente usato solo per gli &X-Server; che sono avviati da &kdm; ma &kdm; può gestire &X-Server; avviati dall'esterno (estranei), sia che siano eseguiti sulla macchina locale che su una macchina remota.

La sintassi formale di una specifica è

    nome display [_classe display]

per tutti gli &X-Server;. I display estranei sono diversi perché hanno il nome dell'host nel nome del display, può essere `localhost`.

Il nome del display deve essere qualcosa che possa essere passato all'opzione `-display` di un programma X. Questa stringa è usata per generare i nomi delle sezioni specifiche per display, quindi stai attento a far corrispondere i nomi. Il nome dei display &XDMCP; viene generato dall'indirizzo del display usando la risoluzione inversa del nome dell'host. Per gli scopi della configurazione, il prefisso `localhost` dei display &XDMCP; locali non è rimosso per renderli distinguibili dagli &X-Server; avviati da &kdm;.

La parte classe display è anche usata per le sezioni specifiche per-display. È utile se hai molti display simili (come un laboratorio con molti terminali X) e vuoi impostare le opzioni per un gruppo di essi. Quando si usa &XDMCP;, il display è obbligato a specificare una classe di display, quindi il manuale per quel particolare terminale X dovrebbe documentare la stringa della classe di display del dispositivo. Se non lo fa, puoi eseguire &kdm; in modo debug e usare `grep` per trovare class nel log.

Il display specificato da `ReserveServers` non viene fatto partire quando &kdm; è avviato, ma solo quando è specificamente richiesto attraverso il socket dei comandi. Se vengono specificati display di riserva, il menu di &kde; avrà una voce Avvia nuova sessione verso il fondo; usa tale voce per attivare un display di riserva con una nuova schermata di accesso. Il monitor mostrerà il nuovo display ed avrai un minuto per completare l'accesso. Se non ci sono altri display di riserva disponibili, la voce del menu sarà disabilitata.

Quando &X-Server; avvia una sessione, prepara i dati di autorizzazione dell'&kdm;. Per i server locali, &kdm; passa ``--auth` `nomefile`` sulla riga di comando dell'&X-Server; per puntare ai propri dati di autorizzazione. Per i display &XDMCP;, &kdm; passa i dati di autorizzazione all'&X-Server; con il messaggio Accept.

## Controllo dell'accesso &XDMCP;

Il file specificato dall'opzione `AccessFile` fornisce informazioni che &kdm; usa per controllare l'accesso dai display che richiedono servizi da &XDMCP;. I file contengono quattro tipi di voci: le voci che controllano la risposta alle richieste Direct e Broadcast, le voci che controllano la risposta delle richieste Indirect, definizioni di macro e voci che controllano su quali interfacce di rete &kdm; si mette in ascolto per le richieste &XDMCP;. Le righe vuote sono ignorate, il carattere `#` è trattato come un delimitatore di commento che fa ignorare il resto della riga, e `\` fa ignorare un a capo immediatamente successivo, permettendo alle liste di host indiretti di usare più righe.

Il formato delle voci Direct è semplice, è o un nome di host o un modello, che è confrontato con il nome dell'host del dispositivo di visualizzazione. In alternativa, si può usare il nome di una macro per far corrispondere la voce al risultato dell'espansione della macro. I modelli sono distinti dai nomi degli host dalla presenza di metacaratteri; * corrisponde ad una sequenza di 0 o più caratteri, e `?` corrisponde ad un qualsiasi carattere singolo. Se la voce è il nome di un host, tutte le comparazioni vengono fatte usando l'indirizzo di rete, quindi ogni nome che può essere convertito correttamente ad un indirizzo di rete può essere usato. Per i modelli, solo i nomi canonici degli host sono usati nelle comparazioni, quindi assicurati di non cercare corrispondenze con gli alias. I nomi degli host delle richieste &XDMCP; contengono sempre il nome di dominio locale anche se il reverse lookup restituisce il nome breve, quindi puoi usare i modelli per il dominio locale. Facendo precedere la voce da un carattere `!` fa escludere il nome dell'host che corrisponde a tale voce. Facendola precedere da `=` si indica che si sta specificando una macro per distinguere la voce dalla definizione di una macro. Per rispondere solo a richieste Direct per un host o un modello, puoi farlo seguire dalla parola chiave opzionale `NOBROADCAST`. Ciò può essere usato per impedire ai server di &kdm; di apparire in menu basati su richieste Broadcast.

Anche una voce Indirect contiene il nome di un host o un modello o una macro, ma lo fa seguire da un elenco di nomi di host o macro a cui devono essere inoltrate le richieste. Anche le voci Indirect possono essere escludenti, nel qual caso un nome di host (valido) come segnaposto deve essere inserito per rendere la voce distinguibile da una voce Direct. Se è presente la gestione dell'IPv6, i gruppi di indirizzi multicast possono essere inclusi nella lista di indirizzi a cui inoltrare le richieste. Se la lista di indirizzi indiretti contiene la parola chiave `CHOOSER`, le richieste Indirect non sono inoltrate; invece, viene mostrato una finestra per la scelta degli host da &kdm;. La finestra di scelta invierà una richiesta Direct a tutti i restanti nomi di host della lista e offrirà un menu per tutti gli host che rispondono. La lista degli host può contenere la parola chiave `BROADCAST`, per fare in modo che la finestra di scelta invii anche una richiesta Broadcast; nota che alcuni sistemi operativi non permettono l'invio in broadcast di pacchetti UDP, quindi questa funzione potrebbe mancare.

Quando viene controllato l'accesso per un particolare host di display, ciascuna voce è analizzata e la prima voce che corrisponde determina la risposta. Le voci Direct e Broadcast sono ignorate durante l'analisi per una voce Indirect e viceversa.

Una definizione di macro contiene il nome della macro ed una lista di nomi di host ed altre macro in cui la macro viene espansa. Per distinguere le macro dai nomi degli host, i nomi delle macro iniziano con un carattere `%`.

L'ultimo tipo di voce è la direttiva `LISTEN`. La sintassi formale è

     LISTEN [interfaccia [lista multicast]]

Se sono specificate una o più righe `LISTEN`, &kdm; si mette in attesa di richieste &XDMCP; solo sulle interfacce specificate. interfaccia può essere il nome dell'host o l'indirizzo IP che rappresenta un'interfaccia di rete di questa macchina, o un carattere jolly `*` che rappresenta tutte le interfacce di rete disponibili. Se vengono elencati su una riga `LISTEN` degli indirizzi di gruppi multicast, &kdm; si connette al gruppo multicast dell'interfaccia data. Per il multicast IPv6, IANA ha assegnato permanentemente gli indirizzi multicast ff0X:0:0:0:0:0:0:12b ad &XDMCP;. L'X nel prefisso può essere sostituito da un qualsiasi indicatore di contesto valido, come 1 per Node-Local, 2 per Link-Local, 5 per Site-Local, e così via (vedi l'RFC 2373 dell'IETF o il suo sostituto per maggiori dettagli e per le definizione dei contesti). &kdm; normalmente ascolta nel contesto Link-local all'indirizzo ff02:0:0:0:0:0:0:12b per simulare il comportamento del broadcast su sottorete di IPv4 il più fedelmente possibile. Se non vengono fornite righe `LISTEN`, &kdm; ascolta su tutte le interfacce e si connette al gruppo multicast IPv6 predefinito per &XDMCP; (se è compilato con il supporto IPv6). Per disabilitare del tutto l'ascolto per le richieste &XDMCP;, può essere specificata una riga `LISTEN` senza indirizzi, ma l'uso dell'opzione `Enable` del gruppo `[Xdmcp]` è preferito.

## Programmi supplementari

I seguenti programmi sono eseguiti da &kdm; in vari stadi della sessione. Sono tipicamente degli script di shell.

I programmi Setup, Startup e Reset sono eseguiti come utente root, quindi devi stare attento alla sicurezza. Il primo argomento è `auto` se la sessione risulta da una connessione automatica; altrimenti, non gli viene passato alcun argomento.

### Programma di setup

Il programma `Xsetup` è avviato dopo l'avvio di &X-Server; o la sua reinizializzazione, ma prima che venga mostrata la schermata di benvenuto. Questo è il posto dove cambiare lo sfondo dello schermo (se l'opzione `UseBackground` è disabilitata) o far comparire altre finestre che debbano apparire sullo schermo assieme alla finestra di benvenuto.

In aggiunta a quelle specificate da `ExportList`, le seguenti variabili di ambiente sono passate:

DISPLAY

  il nome del display associato

PATH

  il valore di `SystemPath`

SHELL

  il valore di `SystemShell`

XAUTHORITY

  può essere impostata ad un file di authority

DM_CONTROL

  il valore di `FifoDir`

Nota che poiché &kdm; intercetta la tastiera, tutte le altre finestre non potranno ricevere immissioni da tastiera. Potranno interagire con il mouse, però; attento ai potenziali buchi di sicurezza. Se `GrabServer` è impostata, `Xsetup` non potrà affatto connettersi al display. Le risorse di questo programma possono essere inserite in un file nominato in `Resources`.

### Programma Startup

Il programma `Xstartup` è eseguito come root quando l'utente accede al sistema. Questo è il luogo dove mettere i comandi che aggiungono voci a `utmp` (il programma `sessreg` potrebbe essere utile a questo punto), monta le directory degli utenti dai server di file, o interrompe la sessione se qualche requisito non è presente (ma nota che sui sistemi moderni molti di questi compiti sono svolti dai moduli PAM).

In aggiunta a quelle specificate da `ExportList`, le seguenti variabili di ambiente sono passate:

DISPLAY

  il nome del display associato

HOME

  la directory di lavoro iniziale dell'utente

LOGNAME

  il nome utente

USER

  il nome utente

PATH

  il valore di `SystemPath`

SHELL

  il valore di `SystemShell`

XAUTHORITY

  può essere impostata ad un file di authority

DM_CONTROL

  il valore di `FifoDir`

&kdm; attende fino al termine di questo programma prima di iniziare la sessione dell'utente. Se il valore di uscita del programma non è zero, &kdm; interrompe la sessione e ricomincia un ciclo di autenticazione.

### Programma Session

Il programma `Xsession` è il comando eseguito come sessione dell'utente. È eseguito con i permessi dell'utente autorizzato. Una delle parole chiave `failsafe`, `default` o `custom`, o una stringa da valutare (`eval`) con una shell compatibile Bourne è passata come primo argomento.

In aggiunta a quelle specificate da `ExportList`, le seguenti variabili di ambiente sono passate:

DISPLAY

  il nome del display associato

HOME

  la directory di lavoro iniziale dell'utente

LOGNAME

  il nome utente

USER

  il nome utente

PATH

  il valore di `UserPath` (o `SystemPath` per le sessioni dell'utente root)

SHELL

  la shell predefinita dell'utente

XAUTHORITY

  può essere impostata ad un file di authority non standard

KRBTKFILE

  può essere impostata al nome della cache delle credenziali Kerberos4

KRB5CCNAME

  può essere impostata al nome della cache delle credenziali Kerberos5

DM_CONTROL

  il valore di `FifoDir`

XDM_MANAGED

  contiene una lista di elementi separati da virgole dei parametri che la sessione può ritenere interessanti, come quale plugin di conversazione è stato usato per l'accesso

DESKTOP_SESSION

  il nome della sessione che l'utente ha scelto di avviare

### Il programma di reset

In modo simmetrico rispetto a `Xstartup`, il programma `Xreset` è eseguito dopo che la sessione dell'utente è terminata. È eseguito come root, e dovrebbe contenere comandi che annullano gli effetti di `Xstartup`, eliminando le voci da `utmp` o smontando le directory dai server dei file.

Le variabili di ambiente che sono state passate a `Xstartup` sono passate anche a `Xreset`.