web-dev-qa-db-fra.com

Désactivez la connexion d'un utilisateur sans désactiver le compte

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.

92
Malabarba
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.

105
Chad Feller

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).

39

Il existe deux méthodes pour empêcher un utilisateur de se connecter:

  1. vous pouvez verrouiller l'utilisateur en modifiant /etc/passwd
  2. en exécutant directement la commande passwd avec la commande -l commutateur

Dans le second cas, l'utilisateur peut se connecter en utilisant un autre jeton d'authentification (par exemple une clé SSH).

Méthode # 1

  1. Trouvez où se trouve nologin:/bin/nologin ou/bin/sbin/nologin
  2. Ouvrez un terminal et connectez-vous en tant que root
  3. Tapez 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)

  1. Fermez le vi Esc:wq

Méthode n ° 2

Pour verrouiller l'utilisateur: passwd -l username

Pour déverrouiller l'utilisateur: passwd -u username

28
Mansur Ul Hasan

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.

7
PRABHAT PARASHAR

Ensemble /bin/false en tant que Shell dans /etc/passwd

4
danadam

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.

0
Sushil Musande