Supposons que je crée un utilisateur nommé "faux" à l'aide de la commande adduser
. Comment puis-je m'assurer que cet utilisateur ne sera PAS une option de connexion viable, sans désactiver le compte. En bref, je veux que le compte soit accessible via su - bogus
, mais je ne souhaite pas qu'il soit accessible via une invite de connexion standard.
En cherchant, il semble que je doive désactiver le mot de passe de cet utilisateur, mais en faisant passwd -d bogus
n'a pas aidé. En fait, cela a empiré les choses, car je pouvais maintenant me connecter à un faux sans même taper un mot de passe.
Existe-t-il un moyen de désactiver les connexions régulières pour un compte donné?
Remarque: pour être clair, je sais comment supprimer un utilisateur des options de menu des écrans de connexion graphiques tels que gdm, mais ces méthodes masquent simplement le compte sans désactiver la connexion. Je cherche un moyen de désactiver complètement la connexion régulière, mode texte inclus.
passwd -l user
c'est ce que tu veux.
Cela verrouillera le compte utilisateur. Mais vous pourrez toujours
su - user
mais vous devrez su - user
en tant que root.
Alternativement, vous pouvez accomplir la même chose en ajoutant un !
au mot de passe de l'utilisateur dans /etc/shadow
(C'est tout passwd -l
fait dans les coulisses). Et passwd -u
annulera cela.
La page de manuel de passwd(1)
dit à propos de passwd -l
:
Notez que cela ne désactive pas le compte. L'utilisateur peut toujours être en mesure de se connecter à l'aide d'un autre jeton d'authentification (par exemple, une clé SSH). Pour désactiver le compte, les administrateurs doivent utiliser usermod --expiredate 1 (cela définit la date d'expiration du compte au 2 janvier 1970).
Donc
usermod --expiredate 1 [LOGIN]
me semble être la bonne façon de désactiver un compte qu'un utilisateur ne devrait plus pouvoir utiliser (par exemple parce qu'il a quitté l'entreprise).
Il existe deux méthodes pour empêcher un utilisateur de se connecter:
/etc/passwd
passwd
avec la commande -l
commutateurDans le second cas, l'utilisateur peut se connecter en utilisant un autre jeton d'authentification (par exemple une clé SSH).
Méthode # 1
vi /etc/passwd
Vous êtes maintenant dans le fichier passwd
appuyez sur Ins pour modifier le fichier.
Modifiez la ligne ci-dessous avec l'option nologin
(/bin/bash
signifie que l'utilisateur peut se connecter).
root:x:0:0:root:/root:/bin/bash
pour ça. nologin
signifie que l'utilisateur ne peut pas se connecter.
root:x:0:0:root:/root:/bin/nologin
(ou avec/bin/sbin/nologin)
Méthode n ° 2
Pour verrouiller l'utilisateur: passwd -l username
Pour déverrouiller l'utilisateur: passwd -u username
C'est une tâche assez simple, il vous suffit de faire quelques changements dans /etc/passwd
fichier.
Vous devez simplement changer le Shell qui est généralement par défaut /bin/bash
C'est-à-dire que vous pouvez vous connecter en utilisant ce Shell le changer en /bin/nologin
ou /bin/false
. Il est conseillé de le changer en /bin/nologin
parce que /bin/false
n'est pas à jour.
Ensemble /bin/false
en tant que Shell dans /etc/passwd
Lorsque nous verrouillons l'utilisateur à l'aide du passwd -l user
commande, "!!
"sont indiqués dans le /etc/shadow
fichier. Mais nous pouvons toujours basculer vers un shell utilisateur à partir du compte root, mais pas en mesure de basculer vers le compte utilisateur par d'autres utilisateurs normaux shell de connexion.
Nous pouvons également désactiver le compte en fournissant /bin/nologin
ou /bin/false
vers /etc/passwd
fichier. Il est donc possible que l'utilisateur ne puisse pas se connecter.