4 votes

Quelle est la différence entre un compte root et des racines simulées ?

Donc si je désactiver mon compte root avec sudo passwd -dl root J'ai toujours accès à sudo {su,bash} o sudo -{s,i} conceptuellement, en quoi les droits élavés sont-ils différents du compte root ?

Je sais. la différence entre chacune des élévations Je suis à la recherche d'une différence approfondie entre un compte et des droits élevés ?

4voto

psusi Points 35613

Il n'y a pas de différence. sudo change votre identifiant d'utilisateur en root, sans tenir compte du fait que le compte root possède ou non un mot de passe.

La différence entre sudo -s y sudo -i est de savoir si les variables d'environnement (des choses comme $HOME) sont conservées ou non à leurs valeurs actuelles (donc ~ pointe toujours vers votre répertoire personnel) ou sont réinitialisées aux valeurs que root obtiendrait s'il se connectait normalement.

3voto

Tendayi Mawushe Points 10335

passwd -dl root ne désactive pas l'utilisateur root. Il supprime et "verrouille" le mot de passe, c'est-à-dire qu'il définit un hachage de mot de passe sans signification.

Avoir un compte avec un mot de passe verrouillé signifie que vous ne pouvez pas vous connecter à l'utilisateur en utilisant le mot de passe. su, login et lightdm ne vous permettront pas de vous connecter en tant que root parce que, par défaut ils vous demandent le mot de passe de l'utilisateur.

Cependant, sudo fonctionne d'une manière différente : en gros, il a une liste d'utilisateurs qui sont autorisés à exécuter sudo (les utilisateurs dans cette liste sont appelés sudoers ) et, par défaut demande le mot de passe de l'utilisateur qui a lancé sudo.

C'est pourquoi, en utilisant sudo, vous pouvez vous connecter en tant que root même si root n'a pas de mot de passe. Si vous essayez la commande su root vous verrez que vous ne pourrez pas vous connecter, car il vous sera demandé un mot de passe que vous ne pouvez pas fournir.

su, login, lightdm, sudo, ssh et autres sont tous des programmes que vous pouvez utiliser pour vous connecter à un système en tant qu'utilisateur, mais ils gèrent l'authentification de différentes manières. Il est important de ne pas confondre les méthode d'authentification avec l'action de se connecter .

Comme vous pouvez vous y attendre, le sujet de l'authentification est assez long et peut être délicat. Expliquer ici toutes les méthodes d'authentification disponibles et comment les utiliser serait trop difficile. Heureusement, il existe un outil qui peut vous donner des réponses plus exhaustives : man, que vous connaissez sûrement déjà. Vous serez peut-être intéressé par la lecture de ce document :

  • man passwd
  • man su
  • man sudo
  • man login

En particulier, man passwd contient ce paragraphe que vous pourriez trouver intéressant :

   -l, --lock
       Lock the password of the named account. This option disables a password by
       changing it to a value which matches no possible encrypted value (it adds a
       ´!´ at the beginning of the password).

       Note that this does not disable the account. The user may still be able to
       login using another authentication token (e.g. an SSH key). To disable the
       account, administrators should use usermod --expiredate 1 (this set the
       account's expire date to Jan 2, 1970).

       Users with a locked password are not allowed to change their password.

Donc, pour désactiver l'utilisateur root, vous devez exécuter usermod --expiredate 1 root . Bien que l'expérimentation soit toujours une bonne chose, rappelez-vous que cette commande peut être vraiment dangereuse et rendra votre boîte inutilisable. Donc, si vous voulez l'essayer, assurez-vous de savoir comment récupérer votre système ou (mieux) utilisez un chroot/un conteneur linux/une machine virtuelle/un CD live/une USB live.

Cela dit, vous remarquerez que vous recevrez parfois un message comme celui-ci :

Your account has expired; please contact your system administrator
su: Authentication failure

Cependant, il existe d'autres façons d'utiliser les comptes expirés. Par exemple, sudo ignore la date d'expiration de l'utilisateur de destination (mais vérifie la date d'expiration du sudoer). De même, su l'ignore, mais uniquement lorsqu'il est exécuté en tant que root :

Your account has expired; please contact your system administrator
su: Authentication failure
(Ignored)

Pour vraiment rendre un utilisateur inaccessible, vous devez vous occuper de PAM. Voir man 7 pam et son VOIR AUSSI pour plus d'informations.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X