Ai fini di una migliore sicurezza del sistema, potrebbe essere utile impedire il login diretto per l'utente root, eventuali account di sistema che non siano stati disattivati ed account condivisi (ovvero la cui password sia conosciuta a piu' persone). In questo modo sara' prima necessario effettuare il login con un altro utente e poi assumere le credenziali desiderate tramite su.
Per ottenere questo comportamento si puo' ricorrere al modulo pam_access, che consente di definire delle regole in /etc/security/access.conf.
E' sufficiente aggiungere in /etc/pam.d/login la seguente linea:
account required pam_access.so
Impostanto il flag di controllo a required, se il tentativo d'accesso non dovesse rispettare le regole definite in /etc/security/access.conf la richiesta fallira', dopo avere elaborato la parte restante dello stack di autenticazione.
Ipotizzando che ad esclusione di root e degli account di sistema, tutti gli utenti appartengono ad uno tra i gruppi users, administrators e sys_operators si puo' scegliere di negare l'accesso su qualunque tty a chiunque non appartenga a tale gruppi, inserendo la seguente riga in /etc/security/access.conf:
-: ALL EXCEPT administrators sys_operators users:ALL
Il file /etc/security/access.conf, una volta effettuata l'autenticazione verra' letto dal modulo pam_access, che neghera' l'accesso diretto per tutti gli utenti che non appartengano ai gruppi elencati. Ad esempio, tentando di eseguire un login come utente root, il sistema rispondera' con il messaggio Permission denied.
Una soluzione del genere sarebbe pero' scomoda nel caso ogni utente appartenga al gruppo omonimo, poiche' per ognuno di essi andrebbe aggiunta la relativa voce in access.conf.
Per imporre che ogni nuovo utente aggiunto al sistema appartenga al gruppo user si puo' modificare il file /etc/adduser.conf impostando l'opzione USERGROUPS a no. In questo modo ogni nuovo utente apparterra' algruppo con il gid specificato dall'opzione USERS_GID. Il valore di defualt di USERS_GID e' 100 e corrisponde appunto al gruppo users.
Infine, si sottolinea come questa configurazione funzionera' correttamente solo nel caso in cui non esistano utenti di nome administrators, sys_operators o users, perche' in tal caso l'accesso verrebbe consentito a tali utenti, e non agli appartenenti ai gruppi ominimi.
Gestione degli accessi con PAM (Pluggable Authentication Module). Logica e configurazione.