6.11.2 login

Il programma login (man page login(1)) permette l’autenticazione per l’accesso di un utente al sistema.

[da completare ...]

In genere non dovrebbe essere possibile utilizzare direttamente tale comando, ma il suo lancio è appannaggio del programma di gestione del terminale (getty o derivati) dopo che questo ha ottenuto lo username dall’utente.

Al momento dell’avvio del processo login, questo richiede lo username, se questo non era già stato passato come parametro sula riga di comando al lancio di login, e la relativa password.

La password inserita viene cifrata e confrontata con quella presente nello user account relativo all’utente identificato dallo username inserito. Se le due password coincidono, l’utente è autenticato e quindi abilitato all’accesso al sistema.

La cifratura della password avviene tramite la funzione di libreria crypt (man page crypt(5)), aggiungendo in testa alla stringa da cifrare 2 caratteri (“salt”).

Al termine della procedura di autenticazione login visualizza

Esistono dei file che il processo login prende in considerazione per determinare l’accesso al sistema.

Affinché il superuser possa accedere al sistema, è necessario che il terminale (TTY) dal quale si intende accedere sia elencato all’interno del file /etc/securetty, cioè sia considerato un terminale “sicuro” (la procedura di accesso da tale sistema è ritenuta non contraffatta). I tentativi di accesso come superuser che provengono da terminali non elencati nel file precedentemente indicato, vengono annotati all’interno del system log. Un esempio del contenuto del file /etc/securetty è riportato di seguito

 
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
vc/10
vc/11
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
tty10
tty11  
I nomi dei terminali vengono indicati facendo riferimento ai file di dispositivo22 relativi, senza l’indicazione del prefisso /dev/. L’esempio precedente mostra un elenco di terminali che comprende i terminali virtuali o console virtuali (vc/1, ..., vc/11), ed i terminali standard (tty1, ..., tty11). Nel caso in cui il file /etc/securetty non esista, il superuser può accedere al sistema da qualunque terminale.

Nei sistemi in cui non viene utilizzata la libreia PAM, il file /etc/usertty, se esiste, specifica ulteriori restrizioni di accesso al sistema per i vari utenti. Il file consiste di una serie di sezioni di tre tipi:

Per ulteriori dettagli v. login(1).

Se esiste il file ~/.hushlogin, viene eseguito un accesso silenzioso (hush), nel senso che vengono disattivati:

Se esiste il file /etc/nologin, login ne visualizza il contenuto sullo schermo e non viene consentito l’accesso al sistema a nessun utente tranne al superuser. Ciò può servire per impedire l’accesso al sistema, tipicamente quando si intende chiuderlo o manutenerlo.

L’accesso al sistema viene registrato nel file /var/log/lastlog l’indicazione dell’utente, del giorno e dell’ora a cui è avvenuto l’accesso e il terminale da cui l’accesso è stato effetuato. Tale file raccoglie le informazioni relative all’ultimo accesso al sistema effettuato da ogni utente. Il formato del file non è leggibile direttamente, ma può essere letto tramite il comando lastlog (v. sez. 6.12).

Al termine della procedura di accesso viene avviata la default shell indicata nello user account dell’utente. Nel caso in cui questa non sia stata indicata, viene eseguito il file /bin/sh, ovvero la shell di default generica. Se nello user account non è indicata la home directory dell’utente, viene utilizzata la root directory ‘/’.