Un utente che ha una shell valida e nessuna password può comunque accedere con metodi non basati su password, il più comune è una chiave ssh. È necessaria una shell valida per eseguire i lavori cron. Una shell valida è necessaria anche per su bin -c 'wibble'
per funzionare (almeno su Linux, su bin -s /bin/sh -c 'wibble'
funzionerà anche).
Nel caso di bin
, la maggior parte dei sistemi non esegue mai un comando come bin
nel funzionamento normale, quindi impostando la shell su /bin/false
andrebbe bene.
Non c'è rischio di alcun attacco diretto che consenta bin
per accedere tramite SSH, perché ciò richiederebbe la creazione di /bin/.ssh/authorized_keys
come utente bin
o come radice. In altre parole, l'unico modo per entrare è essere dentro. Tuttavia, avere una shell valida aumenta il rischio di configurazione errata. Può anche consentire alcuni attacchi remoti con servizi diversi da SSH; ad esempio un utente segnala che un utente malintenzionato potrebbe impostare una password per daemon
da remoto tramite Samba, quindi utilizza quella password per accedere tramite SSH.
Puoi tappare il buco SSH elencando i nomi degli utenti del sistema in un DenyUsers
direttiva in /etc/ssh/sshd_config
(sfortunatamente non è possibile utilizzare un intervallo numerico). Oppure, al contrario, puoi inserire un AllowGroups
e consentire solo ai gruppi che contengono utenti fisici (ad es. users
se concedi a tutti i tuoi utenti fisici tale appartenenza al gruppo).
Ci sono bug segnalati su questo problema in Debian (#274229, #330882, #581899), attualmente aperti e classificati come “wishlist”. Tendo a concordare sul fatto che si tratta di bug e che gli utenti del sistema dovrebbero avere /bin/false
come shell a meno che non sembri necessario fare diversamente.
Non devi preoccuparti di quelli come utenti. Sono "utenti" nel senso di gruppi di sicurezza, non utenti nel senso di persone "accedi e usa". Se guardi in "/etc/shadow", vedrai che tutti questi "utenti" non hanno password (o "x" o "!" invece di un lungo hash salato). Ciò significa che questi utenti non possono accedere, qualunque cosa succeda.
Detto questo, non so se sia una buona idea cambiare "/bin/sh" in "/bin/false" per tutti questi utenti. Poiché i programmi vengono eseguiti in questi gruppi, potrebbe non consentire loro di eseguire i comandi di cui hanno bisogno. Li lascerei come "/bin/sh".
Non è necessario che tu ti preoccupi per questi utenti. Preoccupati solo degli utenti che crei (e di quelli con gli hash in "/etc/shadow")