Comment puis-je désactiver complètement un compte? passwd -l
n'autorisera personne à se connecter à un compte à l'aide d'un mot de passe, mais vous pouvez toujours vous connecter via des clés privées / publiques. Comment pourrais-je désactiver le compte complètement? En tant que correctif, j'ai renommé le fichier authorized_keys_lockme
. Y a-t-il un autre moyen?
users
account-restrictions
Braiam
la source
la source
Réponses:
La manière correcte selon
usermod(8)
est:(En fait, l'argument à
--expiredate
peut être n'importe quelle date antérieure à la date actuelle dans le formatYYYY-MM-DD
.)Explication:
--lock
verrouille le mot de passe de l'utilisateur. Cependant, la connexion par d'autres méthodes (par exemple, la clé publique) est toujours possible.--expiredate YYYY-MM-DD
désactive le compte à la date spécifiée. Selon leman shadow 5
1970-01-01, la valeur est ambiguë et ne doit pas être utilisée.J'ai testé cela sur ma machine. Aucune connexion avec mot de passe ni clé publique n'est possible après l'exécution de cette commande.
Pour réactiver le compte à une date ultérieure, vous pouvez exécuter:
la source
usermod --unlock --expiredate '' username
va le faire.usermod
: dit:Note: if you wish to lock the account (not only access with a password), you should also set the EXPIRE_DATE to 1.
--expiredate 1
ne suffit-il pas assez?sudo su username
semble fonctionner avec un autre compte.Verrouillez le mot de passe et changez le shell en
/bin/nologin
.(Ou plus précisément,.
sudo usermod -L -s /bin/nologin username
)la source
ssh username@hostname /bin/bash
, l'utilisateur recevra une invite bash, quel que soit le shell par défaut.sudo chsh -s /bin/nologin
serait mieux que l'édition/etc/passwd
à la main. En outre, sur certains systèmes, c’est/sbin/nologin
.Voici un autre moyen simple. Vous pouvez définir le compte d'utilisateur expiré. Cela empêchera les connexions basées sur un mot de passe et sur une clé ssh pour le compte, mais ne touchera pas le mot de passe.
Pour verrouiller le compte:
Le compte d'utilisateur 'nom d'utilisateur' sera verrouillé sur le système. Pour réactiver le compte d'utilisateur, procédez comme suit.
Pour déverrouiller le compte:
Le compte d'utilisateur 'nom d'utilisateur' sera réactivé sur votre système avec le même mot de passe qu'auparavant. Le binaire «chage» fait partie du package shadow-utils sous Red Hat Linux ou du package passwd sous Debian Linux.
la source
Je n'ai pas assez de représentants pour commenter la réponse de Legate, mais je voulais dire que cette réponse nous a aidés avec un autre cas d'utilisation:
1.) compte en question est un compte de service local exécutant une application, pas un compte d'utilisateur final.
2.) les utilisateurs finaux ssh en tant qu’eux-mêmes, et
sudo /bin/su <user>
de devenir utilisateur et administrateur de l’application en raison de l’exigence d’un journal d’audit selon laquelle le compte de service ne peut pas disposer d’une capacité de connexion directe.3.) Le compte de service doit avoir un shell valide (
/bin/bash
non/sbin/nologin
), car une plate-forme de planification d'entreprise (l'agent s'exécute en tant que root en local) doit pouvoir utilisersu - <user>
et n'a pas lasu -s /bin/bash <user>
capacité d'un shell complet et est nécessaire pour exécuter des travaux à distance. pour les opérations par lots plus importantes englobant plusieurs serveurs et bases de données.Alors ...
passwd -l <user>
Ne satisfait pas les contraintes car l'authentification par clé publique contourne PAM et permet toujours la connexion directe.
usermod -s /sbin/nologin <user>
Ne satisfait pas aux contraintes car le planificateur d'entreprise est brisé
usermod --lock --expiredate 1970-01-01 <user>
Ceci est notre gagnant. La connexion à distance est désactivée, mais root peut toujours
su <user>
, de même que les autres utilisateurs,sudo
pour que le planificateur fonctionne correctement et que les utilisateurs finaux autorisés puissent devenir le compte de service cible selon les besoins.Merci pour la solution!
la source
Pour supprimer entièrement il utiliser
userdel
.Veuillez noter que si vous supprimez un compte, il existe un risque que son ID utilisateur soit toujours utilisé quelque part dans le système de fichiers et qu'un nouvel utilisateur hérite de la propriété de ces fichiers s'il est entré sous le même ID utilisateur.
Vous voudriez changer le propriétaire de tous les fichiers appartenant à l'utilisateur supprimé.
Si vous souhaitez ajouter l'utilisateur ultérieurement, enregistrez ses lignes à partir de
/etc/passwd
(et sous Solaris/etc/shadow
) dans des fichiers temporaires tels que/etc/passwd_deleted
.Ainsi, lorsque vous le rajouterez, vous pourrez utiliser le même identifiant utilisateur et le même mot de passe (crypté dans l'un des fichiers ci-dessus).
Disclaimer: J'ai appris UNIX par moi-même et je ne serais pas surpris s'il existe un meilleur moyen de désactiver temporairement l'utilisateur. En fait, je ne sais même pas de quelles clés privées / publiques vous parlez. De plus, je suis sûr qu’une
find
commande peut être utilisée pour rechercher les fichiers avec ce propriétaire useridla source
Quelqu'un a-t-il essayé de le faire via ssh_config? Peut-être que cela pourrait aider http://www.techrepublic.com/blog/opensource/set-up-user-accounts-quickly-and-securely/86
la source