Alla fine della fase di avvio, il sistema si prepara ad interagire con gli
utenti e il processo init avvia una copia di un programma, chiamato
getty, che controlla la console ed emette il prompt in
attesa che un utente acceda al sistema.
Siamo ora al run level 3, pronti per fare il log in e lanciare
i programmi.
Il prompt mostrato da getty è del tipo:
Debian GNU/Linux 2.1 localhost tty1
localhost login:
Il cursore lampeggiante accanto al prompt indica la possibilità
di immettere i propri dati di identificazione per accedere al
sistema.
Una volta inserito il nome utente, occorre digitare anche la propria
password al prompt successivamente mostrato da getty.
Il nome utente e la password così inseriti vengono poi passati
ad un altro programma, chiamato login, che si occupa di
controllarne la correttezza.
Perché il login vada a buon fine è necessario che i vostri dati
siano già stati registrati dall'amministratore, tramite un apposito
programma di sistema, nel file /etc/passwd, che contiene
una sequenza di righe, ciascuna delle quali descrive un account
utente.
Le informazioni sull'account sono divise in diversi campi, uno
dei quali è una versione cifrata della password.
Per consentire l'accesso al sistema, il programma login esegue
la crittografia della stringa inserita al prompt e controlla che
le due cifrature, quella presente nel sistema e quella appena
calcolata, corrispondano.
In caso affermativo l'utente può accedere al sistema, altrimenti
l'accesso viene negato e viene riproposto il prompt di identificazione
con un messaggio del tipo:
Login incorrect
login:
E' bene soffermarci su questo importante meccanismo di protezione
implementato da tutti i sistemi basati su UNIX.
UNIX tiene nota di quali sono i proprietari dei file contenuti
nel file system e da quali utenti (o gruppi di utenti) è possibile
accedere ad essi ed in che modo.
Identificando l'utente all'avvio del sistema si ottengono due
primi vantaggi in termini di sicurezza:
1) Possono utilizzare il sistema solo gli utenti che sono stati
accettati dall'amministratore, il quale ha quindi il potere di
fare una selezione delle persone autorizzate ad usare la macchina;
2) E' possibile proteggere i propri file assegnando opportunamente
o negando agli altri utenti i diritti di accesso ad essi.
Oltre a questi primi meccanismi di protezione, la sicurezza del
sistema è incrementata dall'utilizzo di password crittografate.
Infatti, mentre è facile passare da una password in chiaro ad
una cifrata, l'inverso è molto difficile, per cui se qualcuno
riesce a vedere la versione cifrata di una password non può comunque
usare l'account corrispondente.
Questa soluzione comporta il piccolo svantaggio che se si dimentica
la propria password, non c'è modo di recuperarla, ma si può solamente
chiedere all'amministratore di cambiarla con un'altra; d'altra
parte ha il vantaggio di aumentare la generalità del sistema consentendo
la lettura del file /etc/passwd a tutti gli utenti.
Un uso tipico di questa caratteristica è la possibilità di ogni
programma di chiedere al sistema chi è il proprietario di un file,
che viene restituito come identificatore numerico, e poi cercarlo
nel file delle password per determinare il nome di login dell'utente.
Infine, è importante sottolineare che il programma login
non informa subito se si è immesso un nome di login errato, ma
aspetta che sia stata inserita anche la password.
Se così non fosse, eventuali tentativi di intrusione verrebbero
agevolati, consentendo dapprima la ricerca di un nome di login
corretto e poi l’individuazione della password per quel
nome utente.
In questo modo, invece, ad ogni tentativo occorre fornire una
coppia di possibili valori login/password.
Se l’identificativo e la password sono corretti, il programma
login compie alcune operazioni di servizio e poi avvia
l’interprete di comandi, la shell, con la quale l’utente
può interagire con il sistema.
Una volta che l’utente è stato riconosciuto e accettato,
esso “entra” nel file system del sistema operativo,
in un punto ben preciso, detto home directory, contenente
i file personali dell’utente, inclusi quelli di configurazione
dell’ambiente di sistema.
Le informazioni sulla home directory e sulla shell da avviare
per un particolare utente sono contenuti in appositi campi del
file /etc/passwd.
Torna all'indice Generale del corso di Corso di Sistemi Operativi di Software Planet