6.11.1 Accesso al terminale
Come accennato nel cap. 2, l’accesso al sistema da parte di un utente, per mezzo di un
dispositivo che utilizza la porta seriale come un terminale, un terminale virtuale o un modem,
viene gestito dal processo getty o agetty (molte distribuzioni utilizzano derivati di
getty come mingetty poiché risultano molto meno pesanti per il sistema, ovvero
occupano meno risorse, ma gestiscono soltanto i terminali virtuali). Questo si preoccupa
di
- aprire la linea di comunicazione terminale e impostarne le modalità di
comunicazione.
- visualizzare un testo di “benvenuto” (issue o login banner) all’utente che si accinge
ad accedere al sistema (il testo visualizzato è, generalmente, quello contenuto nel
file /etc/issue) seguito dall’invito (prompt) ad inserire lo username;
- ricevere lo username dell’utente che vuole accedere al sistema;
- attivare il programma per l’autenticatione dell’utente (convenzionalmente si tratta
di /bin/login), fornendogli già lo username (sarà poi compito di login richiedere
l’inserimento della password, per verificare che l’utente sia proprio chi dice di
essere).
Il processo getty è lanciato con il comando getty (man page getty(1)).
____________________________________________________________________
Comando: getty
Path: /etc/getty
SINTASSI
$ getty [option] [line] [speed [type [lined]]]
DESCRIZIONE
-
option è l’insieme delle opzioni che modificano il comportamento di getty. Puo
assumere i seguenti valori:
-
-d defaults_file
(default /etc/conf.getty);
-
-a ;
-
-h non forza l’hung up (disconnessione) della linea;
-
-r delay
indica di attendere delay secondi dopo aver ricevuto il primo carattere
(-r0 indica di non attendere);
-
-t timeout
indica di terminare l’esecuzione se nessuno user name è stato inserito
entro timeout secondi dalla visualizzazione del prompt di login;
-
-w waitfor
indica di attendere la stringa specificata da waitfor prima di
continuare;
-
-c gettydefs_file
effettua un controllo sulla correttezza delle indicazioni presenti nel
file gettydefs_file, secondo la sintassi del file /etc/gettydefs;
-
line ;
-
speed è un’etichetta che si riferisce ad una riga del file /etc/gettydefs che definisce la
velocità iniziale (baud rate), il prompt, la velocità finale e le impostazioni della linea
di comunicazione. Se non è specificato, o se speed si riferisce ad un’etichetta
inesistente, viene considerata la prima riga del file /etc/gettydefs. Se il file
/etc/gettydefs non esiste, viene imostata la una velocità iniziale di 9600
baud;
-
type è una stringa che identifica il tipo di terminale connesso alla linea di
comunicazione (i tipi dei terminali riconosciuti dal sistema sono elencati nel file
/etc/termcap);
-
lined indica il comportamento da tenere in relazione alla linea di comunicazione (il valore
di default è LDISC0);
____________________________________________________________________
All’avvio il processo getty tenta di leggere il contenuto del file /etc/conf.getty.line
(nel caso in cui tale file non esista viene considerato al suo posto il file /etc/conf.getty) che
dovrebbe contenere opportune indicazioni sul funzionameto di getty, secondo la seguente
sintassi
name=value
dove name può assumere i seguenti valori
-
LOGIN in tal caso value rappresenta il nome del file (completo di path assoluto) lanciare in
esecuzione per la gestione delle credenziali di accesso al sistema (per default viene
lanciato /bin/login), al quale verrà passato (sulla riga di comando) lo username
dell’utente;
-
INIT in tal caso value rappresenta una stringa di inizializzazione da inviare sulla linea
di comunicazione prima che getty la utilizzi;
-
ISSUE in tal caso value rappresenta una stringa da visualizzare come testo di bevenuto
al posto del testo contenuto nel file /etc/issue. Se value inizia con il carattere
‘/’, allora getty visualizzerà come messaggio di benvenuto il testo contenuto nel
file specificato da value;
-
CLEAR in tal caso value rappresenta una stringa del tipo ‘YES’ o ‘NO’ che indica
rispettivamente se getty deve cancellare o meno lo schermo prima di visualizzare
il messaggio di benvenuto (per default getty cancella lo schermo);
-
HANGUP in tal caso value rappresenta una stringa del tipo ‘YES’ o ‘NO’ che
indica rispettivamente se getty deve disconnetere o meno la linea durante
l’inizializzazione della stessa (per default getty disconnette la linea);
-
WAITCHAR in tal caso value rappresenta una stringa del tipo ‘YES’ o ‘NO’ che indica
rispettivamente se getty deve attendere o meno un carattere sulla linea prima di
continuare (per default getty non attende);
-
DELAY in tal caso value rappresenta il numero di secondi che getty deve attendere dopo
aver ricevuto il primo carattere (per dafault getty non ha nessun tempo di attesa);
-
TIMEOUT in tal caso value rappresenta il numero di secondi dalla visualizzazione del
propt di login, entro il quale deve essere inserito uno username, altrimenti getty
termina (per default getty attende l’inserimento di uno username per un tempo
indefinito);
-
CONNECT in tal caso value rappresenta una stringa da inviare sulla linea di comunicazione
per stabilire la connessione; ???
[da completare ...]
[da completare ...]
Il file di configurazione delle varie linee di comunicazione gestite da getty è
/etc/gettydefs (man page gettydefs(5)). Questo è un file di testo che ha una struttura
particolare: è composto da righe necessariamente seguite da una riga vuota (soltanto una); al
solito, le righe che iniziano con il carattere cancelletto ‘#’ sono ignorate. Le righe vuote non
sono però ignorate: dopo una riga contenente una voce, si deve trovare esattamente una riga
vuota; se dovessero essercene di più, la lettura del file verrebbe interrotta, ignorando
di fatto le voci successive. Le righe sono suddivise in campi, secondo la sintassi
seguente
label#initial_opt#final_opt#prompt#next_label
dove
-
label è un’etichetta che identifica univocamente la riga ed è il riferimento per il
parametro speed del comando getty. Convenzionalmente, il nome da cui è
composto label contiene un riferimento alla velocità relativa alla comunicazione.
Generalmente tale campo è seguito immediatamente dal simbolo ‘#’ in modo da
non includere spazi superflui come facenti parte dell’etichetta stessa;
-
initial_opt è una stringa contenente una serie di opzioni che definiscono l’impostazione
della linea, prima che questa venga utilizzata (v. termio(7)), a meno che getty
abbia ricevuto l’indicazione di un tipo di terminale dalle cui caratteristiche
estrapolare tale informazione;
-
final_opt è una stringa contenente una serie di opzioni (analogamente a initial_opt) che
definiscono l’impostazione della linea subito prima che venga avviato il programma
per l’autenticazione (in genere /bin/login);
-
prompt è la stringa da utilizzare come invito (prompt) della procedura di accesso. Questa
stringa non sostituisce il messaggio di benvenuto (issue), ma si aggiunge a questo,
in coda. Generalmente si tratta semplicemente della stringa indquoteslogin:. La
stringa in questione preserva gli spazi e può contenere sequenze di controllo che
poi sono interpretate da getty. Generalmente, getty ammette l’uso degli stessi
codici che possono essere inseriti nel file /etc/issue;
-
next_label è l’etichetta che si riferisce ad una riga alternativa. Generalmente, quando
getty riceve un carattere break (generato dalla pressione dei tasti
o
), cerca di gestire la linea nel modo definito dalla riga identificata da questo
nome. Per evitare problemi con gli spazi, questo nome inizia immediatamente dopo
il simbolo ‘#’.
Il processo agetty è lanciato tramite il comando agetty (man page agetty(8)).
[da completare ...]
Il processo mingetty è lanciato dal comando mingetty (man page mingetty(8))che è una
versione minimale di getty per l’accesso al sistema attraverso console virtuali (virtual
console). È particolarmente indicato per risparmiare memoria e non si appoggia a nessun file
di configurazione, a parte il messaggio di benvenuto letto dal file /etc/issue.
____________________________________________________________________
Comando: mingetty
Path: /sbin/mingetty
SINTASSI
# mingetty [option] vc
DESCRIZIONE
-
option è l’insieme delle opzioni che modificano il comportamento di mingetty. Puo
assumere i seguenti valori:
-
--noclear
Non ripulisce lo schermo prima di avviare la procedura di accesso;
-
--long-hostname
Visualizza il nome completo dell’elaboratore all’atto dell’attivazione
della procedura di accesso;
-
vcè la virtual console da attivare.
_______________________________________________________________