La Gestione del login è un server responsabile della visualizzazione della videata di login, dell'autenticazione degli utenti e dell'avvio delle sessioni. Il login grafico è una gradevole alternativa al login tradizionale per i monitor a mappa di bit. I display gestiti dal server di login possono essere collegati direttamente al server di login, oppure a un terminale X o a una workstation della rete.
Per avviare, arrestare o personalizzare il server di login è necessario operare come superutente.
Il server di login svolge le seguenti funzioni:
Può visualizzare la videata di login su display a mappa di bit sia locali che di rete, in modo incondizionato o su richiesta
Serve le console a caratteri collegate direttamente
Può visualizzare una videata di selezione che permette di accedere alle videate di login da altri server di login della rete
Permette l'accesso controllato al server di login
Permette di usare il login tradizionale a caratteri
Per disporre di queste funzioni, i display possono essere collegati direttamente al server della Gestione del login oppure a un terminale X o a una workstation della rete. Per i display locali, il server di login avvia automaticamente un server X e visualizza una videata di login. Per i display collegati in rete, come i terminali X, la visualizzazione della videata di login avviene attraverso il protocollo X Display Manager Protocol (XDMCP) 1.0.
Il server di login viene in genere avviato al boot del sistema. Può tuttavia essere avviato anche da una riga di comando.
Per impostare l'avvio del server di login al boot del sistema, digitare /usr/dt/bin/dtconfig -e
Il server di login si avvierà automaticamente al boot successivo.
Per maggiori informazioni sull'utility di configurazione dtconfig, vedere l'Appendice A, che contiene la pagina man dtconfig(1).
Per avviare il server di login da una riga di comando, digitare /usr/dt/bin/dtlogin -daemon; exit
Il server di login può essere avviato dalla riga di comando quando occorre testare la configurazione, ma in generale è consigliabile avviarlo al boot del sistema.
La Figura 1-1 mostra una possibile configurazione del server di login.
Nell'impostazione predefinita, il server di login memorizza il suo ID di processo in /var/dt/Xpid.
Per cambiare questa impostazione è possibile modificare la risorsa Dtlogin.pidFile nel file Xconfig. La directory specificata dovrà esistere al momento dell'avvio del server di login.
Per modificare Xconfig, copiare il file da /usr/dt/config in /etc/dt/config. Dopo avere modificato /etc/dt/config/Xconfig, far rileggere Xconfig dal server di login digitando:
/usr/dt/bin/dtconfig -reset
Questa operazione produce il comando kill -HUP ID processo server di login.
Ad esempio, per memorizzare l'ID di processo del server di login in /var/mioserver/Dtpid, modificare come segue il file Xconfig:
Dtlogin.pidFile: /var/mioserver/Dtpid
Al riavvio del server di login, l'ID del processo verrà memorizzato in /var/mioserver/Dtpid. La directory /var/mioserver dovrà esistere quando verrà avviato il server di login.
All'avvio, il server di login controlla il file Xservers per determinare se debba essere avviato un server X e per stabilire se e come visualizzare le videate di login sui monitor locali e di rete.
Per modificare il file Xservers, copiarlo da /usr/dt/config in /etc/dt/config. Dopo avere modificato /etc/dt/config/Xservers, far rileggere Xservers al server di login digitando:
/usr/dt/bin/dtconfig -reset
Questa operazione produce il comando kill -HUP ID processo server di login
Il formato delle righe di Xservers è il seguente:
nome_display classe_display tipo_display comando_server_X
dove
nome_display indica al server di login il nome da usare per la connessione al server X (:0 nell'esempio seguente). Il valore * (asterisco) equivale a nome_host:0. Il numero specificato deve corrispondere al numero di connessione del comando_server_X.
classe_display identifica le risorse specifiche del display (Local nell'esempio seguente).
tipo_display indica al server di login se il display è locale o in rete, e specifica come gestire l'opzione “Login dalla riga di comando” nella videata di login (local@console nell'esempio seguente).
comando_server_X identifica la riga di comando, il numero di connessione e altre opzioni che il server di login utilizzerà per avviare il server X (/usr/bin/X11/X: 0 nell'esempio seguente). Il numero di connessione deve corrispondere al numero specificato in nome_display.
La riga predefinita di Xservers ha la forma seguente:
:0 Local local@console /usr/bin/X11/X :0
Se il sistema utilizzato come server di login non dispone di un monitor a mappa di bit, avviare il server di login senza display locale escludendo la riga corrispondente del file Xservers con il simbolo di commento #. Ad esempio,
# :0 Local local@console /usr/bin/X11/X :0
Il server di login verrà avviato in background e riceverà le richieste dei display della rete.
Scegliendo l'opzione “Login dalla riga di comando” dalla videata di login, il server di login arresta temporaneamente il server delle finestre X e consente di eseguire il login in forma tradizionale sul display a mappa di bit di un terminale. Quando l'utente effettua il logout, o dopo un periodo di tempo specificato, il server di login riavvia il server X.
L'opzione “Login dalla riga di comando” non è disponibile sui display collegati via rete.
Il comportamento del “Login dalla riga di comando” dipende dal tipo_display. Il formato di tipo_display è il seguente:
Se si specifica local@display_terminale, il server di login presume che il server X e /dev/display_terminale si trovino sullo stesso dispositivo fisico, e che su quel dispositivo sia in esecuzione un login dalla riga di comando (solitamente getty). Selezionando “Login dalla riga di comando”, il server X viene arrestato e l'utente può accedere al login in esecuzione (getty) su /dev/display_terminale.
Per disabilitare l'opzione “Login dalla riga di comando” su un display, specificare none come display_terminale. Il display_terminale predefinito è console. Specificando local, il valore di display_terminale viene impostato automaticamente su console. Specificando foreign, l'opzione “Login dalla riga di comando” viene disabilitata.
Avviando il server di login dalla riga di comando, l'opzione “Login dalla riga di comando” viene automaticamente disabilitata sul display locale.
Se il sistema utilizzato come server di login è collegato direttamente a un display a caratteri utilizzato come console, si potrà impostare il display_terminale su none per disabilitare l'opzione “Login dalla riga di comando” nella videata di login del display a mappa di bit.
In alternativa, se sia la console a caratteri che il display a mappa di bit utilizzano un login dalla riga di comando (getty), è possibile impostare il display_terminale sul dispositivo usato per il login (getty) sul display a mappa di bit.
Ad esempio, se il login dalla riga di comando (getty) eseguito sul display a mappa di bit si trova sul dispositivo /dev/tty01, cambiare il tipo_display in local@tty01.
Il server di login può visualizzare una videata di login su qualsiasi display della rete che la richieda, si tratti di un terminale X o di una workstation.
Per gestire le richieste dei display della rete, il server di login supporta il protocollo XDMCP (X Display Manager Protocol) 1.0, che permette al server di login di negoziare, e quindi accettare o rifiutare, le richieste ricevute dai display della rete. Il protocollo XDMCP è integrato nella maggior parte dei terminali X.
Quando il terminale X viene configurato per l'utilizzo di XDMCP in modo diretto (modo di interrogazione), l'utente deve specificare al terminale X il nome host del sistema da utilizzare come server di login. Durante il boot, il terminale X contatterà automaticamente il server di login, il quale visualizzerà una videata di login sul terminale. Per informazioni su come configurare il terminale X per l'uso di XDMCP in modo diretto, vedere la documentazione del terminale.
In genere, i server X supportano anche l'opzione -query. In questa modalità, il server X si comporta esattamente come un terminale X, contattando direttamente l'host del server di login per richiedere la visualizzazione della videata di login. Ad esempio, avviando il server X su un display a mappa di bit di una workstation di nome bianca, il server di login anita visualizzerà una videata di login sul server X:
X -query anita
Quando il terminale X viene configurato per l'utilizzo di XDMCP in modo indiretto, l'utente deve specificare al terminale X il nome host del sistema da utilizzare come server di login. Durante il boot, il terminale X contatterà il server di login, il quale presenterà l'elenco dei server di login disponibili nella rete. Da questo elenco, l'utente potrà scegliere l'host che dovrà visualizzare la videata di login sul terminale X. Per informazioni su come configurare il terminale X per l'uso di XDMCP in modo indiretto, vedere la documentazione del terminale.
In genere, i server X supportano l'opzione -indirect, con la quale il server X contatta il server di login in modalità XDMCP indiretta.
Alcuni terminali X di vecchia produzione non supportano il protocollo XDMCP. Per fare in modo che il server di login visualizzi la videata di login su un terminale di questo tipo, includere il nome del terminale nel file Xservers.
Poiché il display fa parte della rete, il nome_display include anche il nome dell'host. La classe_display può essere usata per indicare risorse specifiche per una determinata classe di terminali X. (Per determinare la classe del terminale X in uso, vedere la documentazione del terminale.) Il tipo_display foreign indica al server di login di collegarsi a un server X esistente anziché avviarne uno nuovo. In questo caso non è specificato alcun comando_server_X.
Queste righe del file Xservers ordinano al server di login di visualizzare una videata di login su due terminali X non-XDMCP di nome rosso e grigio:
rosso.blackdog.com:0 AcmeXsta foreign grigio:0 PandaCo foreign
Nell'impostazione predefinita, qualsiasi host della rete che abbia accesso al sistema usato come server di login può richiedere la visualizzazione di una videata di login. L'accesso al server di login può tuttavia essere limitato modificando il file Xaccess.
Per modificare Xaccess, copiare il file da /usr/dt/config in /etc/dt/config. Modificare /etc/dt/config/Xaccess e quindi far rileggere Xaccess al server di login digitando:
/usr/dt/bin/dtconfig -reset
Questa operazione genera il comando kill -HUP ID di processo del server di login.
Quando un host cerca di connettersi al server di login usando XDMCP in modo diretto, il nome dell'host viene confrontato con il contenuto del file Xaccess per determinare se quell'host sia autorizzato o meno ad accedere al server di login. Ogni riga del file Xaccess corrisponde a un nome host e può includere i caratteri speciali * (asterisco) e ? (punto interrogativo). L'asterisco corrisponde a zero o più caratteri qualsiasi, mentre il punto interrogativo corrisponde ad un singolo carattere qualsiasi. Un punto esclamativo (!) all'inizio di una riga disabilita l'accesso al server di login, mentre in mancanza di un punto esclamativo l'accesso è abilitato.
Ad esempio, se Xaccess contiene le tre righe seguenti:
adamo.globo.com *.div5.globo.com !*
La prima riga abilita l'accesso al server di login dall'host adamo.globo.com, la seconda abilita l'accesso da tutti gli host il cui nome completo termini in div5.globo.com, mentre l'ultima riga disabilita l'accesso da qualsiasi altro host.
Quando un host cerca di connettersi al server di login usando XDMCP in modo indiretto, il nome dell'host viene confrontato con il contenuto di Xaccess per determinare il suo diritto di accesso al server di login. Le righe di Xaccess hanno un formato analogo a quelle usate da XDMCP in modo diretto, inclusi i caratteri speciali, ma in questo caso ogni riga contiene una stringa CHOOSER. Ad esempio:
adamo.globo.com CHOOSER BROADCAST *.div5.globo.com CHOOSER BROADCAST !* CHOOSER BROADCAST
Anche in questo caso, la prima riga abilita l'accesso al server di login dall'host adamo.globo.com, la seconda abilita l'accesso da tutti gli host il cui nome completo termini in div5.globo.com, mentre l'ultima riga disabilita l'accesso da qualsiasi altro host.
La stringa CHOOSER può essere seguita da:
L'istruzione BROADCAST indica al server di login di generare, mediante una connessione con l'intera sottorete, un elenco degli host disponibili come server di login. Questo elenco verrà usato dal server di login per determinare quali host siano disponibili. Ad esempio:
adamo.globo.com CHOOSER saturno.globo.com luna.globo.com *.div5.globo.com CHOOSER BROADCAST !* CHOOSER BROADCAST
Collegandosi al server con XDMCP in modo indiretto, adamo.globo.com riceverà un elenco di host contenente saturno e luna, mentre alice.div5.globo.com riceverà l'elenco di tutti i server di login disponibili nella sottorete. Le altre richieste generate con XDMCP in modo indiretto verranno rifiutate.
Un metodo alternativo per specificare un elenco di host consiste nel definire una o più macro contenenti quell'elenco. Ad esempio:
%lista1 saturno.globo.com luna.globo.com adamo.globo.com CHOOSER %lista1
Nell'impostazione predefinita, il server di login registra gli errori nel file /var/dt/Xerrors. Questa impostazione può essere cambiata modificando la risorsa Dtlogin.errorLogFile nel file Xconfig. La directory specificata deve esistere al momento dell'avvio del server di login.
Ad esempio, per fare in modo che il server di login registri gli errori nel file /var/log_personali/Dterrors, impostare la risorsa seguente nel file Xconfig:
Dtlogin.errorLogFile: /var/log_personali/Dterrors
Riavviando il server di login, gli errori verranno registrati nel file /var/log_personali/Dterrors. La directory /var/log_personali dovrà esistere quando verrà riavviato il server di login.
/usr/dt/bin/dtconfig -d
Questo comando indicherà al sistema di non avviare il server di login al boot successivo.
Per arrestare il server di login eliminando l'ID del processo, digitare:
/usr/dt/bin/dtconfig -kill
In questo modo verrà eseguito il comando kill ID di processo server di login.
L'arresto del processo del server di login con il comando kill causerà l'interruzione di tutte le sessioni utente gestite da quel server.
Il server di login può anche essere arrestato eliminando l'ID del processo, in genere memorizzato in /var/dt/Xpid o in un file specificato in Xconfig dalla risorsa Dtlogin.pidFile.
L'arresto del server di login causerà l'interruzione immediata delle sessioni correnti del desktop.
La videata di login visualizzata dal server offre una serie di funzioni aggiuntive rispetto al login a caratteri tradizionale.
Come nel login a caratteri, l'utente deve inserire un nome e una password. Se le informazioni fornite vengono autenticate, il server di login avvia una sessione del desktop per l'utente specificato. Al termine della sessione verrà presentata una nuova videata di login, che potrà essere utilizzata per ripetere l'intero processo.
Per personalizzare la videata di login è possibile:
Modificare l'aspetto della videata di login
Configurare le autorizzazioni del server X
Cambiare la lingua predefinita
Eseguire un comando prima della visualizzazione della videata di login
Modificare il menu Lingua della videata di login
Specificare il comando da utilizzare per l'avvio della sessione dell'utente
Eseguire un comando prima dell'avvio della sessione dell'utente
Eseguire un comando dopo il termine della sessione dell'utente
Ognuna di queste operazioni può essere eseguita per tutti i display o per uno specifico.
Per personalizzare l'aspetto della videata di login è possibile cambiare il logo o la presentazione grafica, i messaggi di benvenuto e i font.
Per modificare il file Xresources, copiarlo da /usr/dt/config/lingua in /etc/dt/config/lingua. Le modifiche verranno applicate all'avvio successivo della videata di login. Per forzare l'applicazione delle modifiche nella sessione corrente, selezionare “Ripristina videata di login” dal menu Opzioni della videata di login.
Gli attributi della videata di login che dipendono dall'impostazione delle risorse nel file Xresources sono i seguenti:
Dtlogin*logo*bitmapFile: file a mappa di bit o a mappa di pixel da visualizzare come logo
Dtlogin*greeting*persLabelString: messaggio di benvenuto personalizzato
Dtlogin*greeting*labelString: messaggio di benvenuto
Dtlogin*greeting*fontList: font per i messaggi di benvenuto
Dtlogin*labelFont: font per i pulsanti e le opzioni
Dtlogin*textFont: font per la guida e i messaggi di errore
Dtlogin*lingua*languageName: testo alternativo per la lingua della versione locale
Impostare la risorsa Dtlogin*logo*bitmapFile in Xresources.
Il logo può essere un file a mappa di bit o a mappa di pixel a colori.
In questo esempio viene usato come logo il file a mappa di bit Logo_pers:
Dtlogin*logo*bitmapFile: /usr/local/lib/X11/dt/bitmaps/Logo_pers.bm
Nell'impostazione predefinita, il server di login visualizza il messaggio Benvenuti su nome host. Per cambiare questo messaggio:
Impostare la risorsa Dtlogin*greeting*labelString in Xresources.
Il valore della risorsa labelString potrà contenere %Host_Locale%, che verrà sostituito dal nome dell'host usato come server di login, e %Nome_Display%, che verrà sostituito dal nome del display del server X.
Nell'esempio seguente, il messaggio di benvenuto viene cambiato in Siete su nome_host!:
Dtlogin*greeting*labelString: Siete su %Host_Locale%!
Dopo l'inserimento del nome utente, il server di login visualizza il messaggio Benvenuto, nome_utente. Questo messaggio può essere modificato impostando la risorsa Dtlogin*greeting*persLabelString in Xresources. Il valore di persLabelString potrà contenere la variabile %s, che verrà sostituita dal nome_utente.
Nell'esempio seguente, il messaggio di benvenuto personalizzato viene modificato in Salve nome_utente.
Dtlogin*greeting*persLabelString: Salve %s
I font utilizzati nella videata di login possono essere cambiati impostando una delle risorse seguenti in Xresources:
Dtlogin*greeting*fontList: font per i messaggi di benvenuto
Dtlogin*labelFont: font per i pulsanti, i menu e le opzioni
Dtlogin*textFont: font per la guida e i messaggi di errore
Per ottenere un elenco dei font disponibili, digitare:
xlsfonts [-opzioni] [-fn schema]
L'esempio seguente imposta l'uso di un font di grandi dimensioni per il messaggio di benvenuto (il valore specificato deve occupare una sola riga):
Dtlogin*greeting*fontList: -dt-interface \ system-medium-r-normal-xxl*-*-*-*-*-*-*-*-*:
Per visualizzare nel menu Lingua una o più opzioni personalizzate anziché i nomi predefiniti delle versioni locali, modificare come nell'esempio la risorsa Dtlogin*lingua*languageName in Xresources:
Dtlogin*En_US*languageName: Americano
Il testo Americano sostituirà il nome predefinito della versione locale En_US.
Il comportamento della videata di login può essere personalizzato modificando le risorse specificate nel file Xconfig.
Per modificare Xconfig, copiare il file da /usr/dt/config in /etc/dt/config. Modificare /etc/dt/config/Xconfig e quindi far rileggere il file al server di login digitando:
/usr/dt/bin/dtconfig -reset
Verrà eseguito il comando kill -HUP ID di processo del server di login
Le risorse specificate nel file Xconfig sono le seguenti:
Dtlogin*authorize: informazioni sul file Xaccess
Dtlogin*environment: ambiente del server X
Dtlogin*language: lingua predefinita
Dtlogin*languageList: elenco delle opzioni del menu Lingua della videata di login
Dtlogin*resources: informazioni sul file Xresources
Dtlogin*setup: informazioni sul file Xsetup
Dtlogin*startup: informazioni sul file Xstartup
Dtlogin*session: informazioni sul file Xsession
Dtlogin*failsafeClient: informazioni sullo script Xfailsafe
Dtlogin*reset: informazioni sullo script Xreset
Dtlogin*userPath: PATH per Xsession e Xfailsafe
Dtlogin*systemPath: PATH per Xsetup, Xstartup e Xfailsafe
Dtlogin*systemShell: SHELL per Xsetup, Xstartup e Xfailsafe
Dtlogin.timeZone: TZ per tutti gli script
Negli esempi riportati qui di seguito, la modifica di una risorsa di Xconfig cambia il comportamento della videata di login per tutti i display. Le risorse affiancate da un asterisco (*) possono essere specificate anche limitatamente a un display specifico. Per specificare una risorsa per un determinato display occorre usare il formato Dtlogin*nome_display*risorsa. Ad esempio, per disabilitare il controllo degli accessi basato sugli utenti per il display expo:0 e lasciarlo abilitato per gli altri display, occorrerà specificare:
Dtlogin*expo_0*authorize: False
Tutti i caratteri speciali contenuti nei nomi dei display, come i due punti (:) o i punti (.), vengono sostituiti da un carattere di sottolineatura (_).
Nell'impostazione predefinita, il server di login abilita il controllo degli accessi al server X basandosi sugli utenti e usando i dati di autorizzazione memorizzati e protetti nel file DirectoryIniziale/.Xauthority. Solo gli utenti autorizzati a leggere questo file potranno connettersi al server X. In generale, questo è il metodo preferito per il controllo degli accessi ai server X.
Un'alternativa è rappresentata dal controllo degli accessi basato sugli host. Con questo metodo, abilitando l'accesso al server X da un determinato host, il diritto di accesso viene esteso automaticamente a tutti gli utenti che hanno accesso a quell'host. Questo metodo può essere utile per le seguenti ragioni:
I vecchi client X di tipo R2 e R3 non possono connettersi a un server X che utilizzi il controllo degli accessi basato sugli utenti.
Se la rete non è protetta, è possibile che un estraneo riesca a intercettare i dati di autorizzazione scambiati tra il client X e il server X.
La risorsa Dtlogin*authorize di Xconfig indica al server di login di usare il controllo degli accessi basato sugli utenti. Per usare il metodo basato sull'host, cambiare il valore della risorsa di autorizzazione in False. Ad esempio:
Dtlogin*authorize: False
Se si desidera associare una o più variabili d'ambiente a un server X al momento del suo avvio dal server di login, occorrerà specificare tali variabili usando la risorsa Dtlogin*environment in Xconfig. Ad esempio:
Dtlogin*environment: VAR1=foo VAR2=bar
renderà le variabili VAR1 e VAR2 disponibili per il processo del server X locale. Queste variabili verranno esportate anche negli script Xsession e Xfailsafe.
Quando si avvia una sessione del desktop dalla videata di login, è possibile scegliere la lingua da utilizzare dal menu secondario Lingua del menu Opzioni. Se non viene selezionata alcuna lingua specifica verrà usata quella predefinita. La lingua predefinita può essere impostata con la risorsa Dtlogin*language in Xconfig. Ad esempio:
Dtlogin*language: Ja_JP
Per determinare quali lingue sono installate sul sistema in uso, vedere la documentazione del sistema.
Nell'impostazione predefinita, il server di login crea il menu Lingua includendo tutte le versioni locali installate sul sistema. Quando l'utente seleziona una lingua, il server di login ripresenta la videata di login in quella lingua. La sessione del desktop verrà quindi avviata nella lingua selezionata.
È possibile cambiare l'elenco delle lingue presentate nel menu modificando la risorsa Dtlogin*languageList in Xconfig:
Dtlogin*languageList: En_US De_DE
Con l'impostazione riportata in questo esempio, il server di login creerà un menu Lingua contenente solo le opzioni En_US e De_DE.
Dopo l'avvio del server X ma prima della comparsa della videata di login, il server di login esegue lo script Xsetup. Questo script richiede le autorizzazioni di superutente ed esegue i comandi che devono essere completati prima della visualizzazione della videata di login.
Per modificare Xsetup, copiare il file da /usr/dt/config in /etc/dt/config. Al login successivo verrà usata la versione modificata di Xsetup.
Dopo l'inserimento e l'autenticazione del nome utente e della parola chiave, ma prima dell'avvio della sessione utente, il server di login esegue lo script Xstartup. Xstartup richiede le autorizzazioni di superutente ed esegue i comandi che devono essere completati prima dell'avvio della sessione utente.
Per modificare Xstartup, copiare il file da /usr/dt/config in /etc/dt/config. Al login successivo verrà usata la versione modificata di Xstartup.
Nell'impostazione predefinita, il server di login avvia la sessione dell'utente eseguendo lo script Xsession. Xsession richiede le autorizzazioni dell'utente ed esegue i comandi necessari per l'avvio del desktop.
Non aggiornare mai direttamente lo script Xsession.
Per informazioni su come personalizzare l'avvio delle sessioni del desktop di un utente, vedere il Capitolo 2.
Selezionando “Sessione protetta” dal menu secondario Sessioni del menu Opzioni della videata di login, il server di login esegue lo script Xfailsafe. Xfailsafe richiede le autorizzazioni dell'utente ed esegue i comandi necessari per l'avvio di un ambiente a finestre base, costituito in genere da un Terminale e talvolta da un gestore di finestre.
Per modificare Xfailsafe, copiare il file da /usr/dt/config in /etc/dt/config. Al login successivo dell'utente verrà eseguita la versione modificata di Xfailsafe.
Quando l'utente esce da una sessione normale o protetta del desktop, il server di login esegue lo script Xreset. Xreset richiede le autorizzazioni di superutente ed esegue i comandi necessari dopo la fine della sessione utente.
Per modificare Xreset, copiare il file da /usr/dt/config in /etc/dt/config. La versione modificata di Xreset verrà eseguita al login successivo.
Il server di login crea un ambiente che viene poi esportato negli script Xsetup, Xstartup, Xsession, Xfailsafe e Xreset. Questo ambiente viene descritto nella Tabella 1–1. Il server di login può esportare anche altre variabili oltre a quelle elencate.
Tabella 1–1 Ambienti del server di login
Variabile d'ambiente |
Xsetup |
Xstartup |
Xsession |
Xreset |
Descrizione |
---|---|---|---|---|---|
X |
X |
X |
X |
Lingua predefinita o selezionata |
|
X |
X |
X |
X |
File alternativo per le autorizzazioni X (opzionale) |
|
X |
X |
X |
X |
Valore della risorsa Dtlogin*userPath (Xsession, Xfailsafe) o della risorsa Dtlogin*systemPath (Xsetup, Xstartup, Xreset) |
|
X |
X |
X |
X |
Numero di connessione del server X |
|
X |
X |
X |
X |
Shell specificata nella risorsa /etc/passwd (Xsession, Xfailsafe) o Dtlogin*systemShell (Xsetup, Xstartup, Xreset) |
|
X |
X |
X |
X |
Valore della risorsa Dtlogin.timeZone o fuso orario determinato dal sistema |
|
|
X |
X |
X |
Nome dell'utente |
|
|
X |
X |
X |
Directory iniziale specificata in /etc/passwd |
|
|
X |
X |
X |
Nome dell'utente |
Il server di login imposta la variabile d'ambiente PATH durante l'esecuzione degli script Xsession e Xfailsafe. Ogni utente ha la possibilità di specificare un percorso alternativo per questi script.
Dtlogin*userPath: /usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11
Dtlogin*systemPath: /usr/bin/X11:/etc:/bin:/usr/bin:/usr/ucb
Il server di login imposta la variabile d'ambiente SHELL durante l'esecuzione degli script Xsetup, Xstartup e Xfailsafe. L'impostazione predefinita è /bin/sh, che tuttavia può essere modificata cambiando la risorsa Dtlogin*systemShell in Xconfig. Ad esempio:
Dtlogin*systemShell: /bin/ksh
Il server di login imposta la variabile d'ambiente TZ durante l'esecuzione degli script Xsetup, Xstartup, Xsession, Xfailsafe e Xreset. Il valore predefinito viene ricavato dal sistema, perciò di norma non è necessario modificare il valore acquisito. Per impostare un fuso orario differente per questi script, modificare la risorsa Dtlogin.timeZone in Xconfig. Ad esempio:
Dtlogin.timeZone: CST6CDT
All'avvio del server di login viene attivato un unico processo dtlogin. Il processo dtlogin legge il file Xconfig per determinare la configurazione iniziale del server di login e localizzare gli altri file di configurazione disponibili. Il server di login legge quindi il file Xservers per determinare la presenza o meno di display da gestire in modo esplicito, e legge il file Xaccess per controllare l'accesso al server di login.
Se nel file Xservers è specificato che il server di login deve gestire un display locale, esso avvierà un server X in base alle informazioni specificate in Xservers e quindi visualizzerà una videata di login su quel display.
Se nel file Xservers è specificato che il server di login deve gestire un display di rete, esso presumerà che il server X richiesto sia già in esecuzione con il nome del display specificato e visualizzerà una videata di login su quel display.
Il server di login attenderà quindi le richieste XDMCP dei client della rete.
Il server di login crea un nuovo processo dtlogin per ogni display da gestire. Questo significa che, se il server di login gestisce un numero n di display, il numero dei processi dtlogin sarà pari a n+1. Il server di login eseguirà lo script Xsetup, caricherà il file Xresources e quindi eseguirà dtgreet per visualizzare la videata di login. Dopo l'inserimento e l'autenticazione del nome utente e della password, il server di login eseguirà lo script Xstartup e quindi lo script Xsession o Xfailsafe. Al termine della sessione eseguirà lo script Xreset.
Se il server di login riceve una richiesta XDMCP indiretta, esso esegue dtchooser per presentare un elenco degli host disponibili come server di login per il display richiedente. La gestione del display verrà quindi affidata all'host selezionato dall'utente.
Per leggere i file di configurazione Xaccess, Xconfig, Xfailsafe, Xreset, lingua/Xresources, Xservers, Xsetup e Xstartup, il server di login cercherà inizialmente in /etc/dt/config, quindi in /usr/dt/config, e utilizzerà il primo file trovato.
Nell'impostazione predefinita, i file della Gestione del login si trovano nelle seguenti posizioni:
/usr/dt/bin/dtlogin: avvia il server di login e la gestione dei display
/usr/dt/bin/dtgreet: visualizza una videata di login per un display
/usr/dt/bin/dtchooser: visualizza una videata di selezione per un display
/usr/dt/bin/Xsession: avvia una sessione del desktop
/usr/dt/config/Xfailsafe: avvia una sessione protetta
/usr/dt/config/Xconfig: file di configurazione del server di login
/usr/dt/config/Xservers: file di descrizione dei display del server di login
/usr/dt/config/Xaccess: file di descrizione degli accessi del server di login
/usr/dt/config/lingua/Xresources: risorse per l'impostazione della visualizzazione
/usr/dt/config/Xsetup: file di configurazione della visualizzazione
/usr/dt/config/Xstartup: file di avvio pre-sessione
/usr/dt/config/Xreset: file di ripristino post-sessione
/var/dt/Xpid: ID del processo del server di login
/var/dt/Xerrors: file di log degli errori del server di login