Pourquoi devrions-nous expirer un compte verrouillé pour empêcher totalement l'accès?

8

De man usermod:

Remarque: si vous souhaitez verrouiller le compte (non seulement l'accès avec un mot de passe), vous devez également définir la EXPIRE_DATE sur 1.

  • Pourquoi devrions-nous expirer un compte verrouillé pour empêcher totalement l'accès au compte?
  • Que se passera-t-il si je n'expire pas un compte verrouillé?
Sinoosh
la source

Réponses:

13

usermod -L en fait, ne verrouille que le mot de passe de l'utilisateur, de sorte que l'utilisateur peut toujours se connecter en utilisant d'autres méthodes, par exemple une session ssh qui utilise l'authentification par clé publique.

Mais si vous définissez le EXPIRE_DATEà 1, le compte expirera entièrement et l'utilisateur ne pourra en aucun cas l'utiliser. En effet, 1 est égal à expirant à 1970-01-01 00:00:01.

Ravexina
la source
1
Et alors usermod -L -e 300 username? Le compte sera expiré entièrement?
Sinoosh
1
@Sinoosh c'est en quelque sorte la même chose. la date d'expiration serait fixée, Oct 28, 1970ce qui rend le compte expiré.
Ravexina
1
@Ravexina Il serait préférable que vous l'appeliez réellement "authentification par clé publique SSH" dans votre réponse, car c'est le mécanisme d'authentification qui contourne le mot de passe, pas SSH en soi;)
marcelm
1
@marcelm vous avez raison. Mise à jour de la réponse ...
Ravexina
2

Parce que les clés ssh ne se soucient pas des mots de passe, vous avez besoin du compte à la place.

La vieille sagesse était de changer la coque de l'utilisateur en /bin/false; mais cela ne fonctionne pas vraiment.

Joshua
la source
"changez le shell de l'utilisateur en / bin / false; mais cela ne fonctionne pas réellement" [citation nécessaire]
user60561
3
@ user60561 certaines commandes ssh n'utilisent pas le shell, comme les ports de transfert.
Joshua