Changer le shell de connexion n'empêche pas nécessairement les utilisateurs de s'authentifier (sauf dans certains services qui vérifient si le shell de l'utilisateur est mentionné dans /etc/shells
).
Les utilisateurs peuvent toujours être en mesure de s’authentifier auprès des divers services fournis par votre système aux utilisateurs d’Unix et peuvent toujours être autorisés à effectuer certaines actions, sans toutefois exécuter directement des commandes arbitraires.
Changer le shell pour /bin/false
ou /usr/sbin/nologin
seulement l'empêcher d'exécuter des commandes sur les services qui peuvent être utilisés pour exécuter des commandes (connexion à la console, ssh, telnet, rlogin, rexec, etc.) n'affectent l' autorisation que pour certains services.
Par ssh
exemple, cela leur permet toujours d'effectuer un transfert de port.
passwd -l
désactive l'authentification par mot de passe, mais l'utilisateur peut toujours être autorisé à utiliser d'autres méthodes d'authentification (comme authorized_keys
avec ssh
).
Sous pam
Linux au moins, vous pouvez utiliser le pam_shells
module pour restreindre l'authentification ou l'autorisation aux utilisateurs disposant d'un shell autorisé (ceux mentionnés dans /etc/shells
). En effet ssh
, vous voudrez le faire au niveau autorisation ( account
) comme pour l’ sshd
utilisation de l’ authentification pam
en plus d’autres méthodes d’authentification (comme authorized_keys
), ou vous pouvez le faire avec des sshd_config
directives dans /etc/ssh/sshd_config
(comme AllowUsers
et amis).
Attention, l'ajout de certaines restrictions à l'autorisation globale de pam peut potentiellement empêcher l'exécution de cron
tâches en tant qu'utilisateurs.
/bin/false
semble plus commun que/bin/true
.