Solution 1 :
Vous pouvez utiliser Autoriser les utilisateurs / Autoriser les groupes si vous n'avez que quelques utilisateurs/groupes autorisés à se connecter via ssh ou DenyUsers / Refuser les groupes si vous n'avez que quelques utilisateurs/groupes qui ne sont pas autorisé à se connecter. Notez que cela restreint uniquement la connexion via ssh, d'autres moyens de connexion (console, ftp, ...) sont toujours possibles. Vous devez ajouter ces options à votre /etc/ssh/sshd_config fichier pour la plupart des installations ssh.
Si vous avez défini le shell de connexion sur /bin/false vous pouvez utiliser su -s /bin/bash user
(remplacez /bin/bash avec la coque de votre choix)
Solution 2 :
Si vous voulez toujours que su fonctionne, vous pouvez utiliser sudo -u [username]
ou passer -s /bin/bash
à su comme shell temporaire. Ils font tous les deux la même chose en l'absence d'un shell dans /etc/passwd
.
Solution 3 :
Si un compte n'a pas de mot de passe (passwd -d username ), ils ne peuvent pas se connecter de manière interactive (console, SSH, etc.). S'ils ont un shell valide, su fonctionnera toujours. Notez le "interactivement", cependant; si quelqu'un décide de configurer une paire de clés SSH pour le compte, cela fonctionnera !
Solution 4 :
Dans sshd_config ajoutez une ligne DenyUser [username]
Notez que cela n'empêchera pas cet utilisateur de se connecter via la console.
Solution 5 :
En plus de ce qui a été mentionné ci-dessus (désactiver et/ou ne pas définir le mot de passe utilisateur), le module pam_access (consultez la page de manuel sur pam_access et access.conf) peut être utilisé pour contrôler l'accès à la connexion.