sudo vs su (en tant qu'utilisateur non root)

10

Mon ordinateur possède les utilisateurs 1 et 2, tous deux administrateurs.

Pendant que je suis connecté en tant qu'utilisateur1, j'essaie de:

  • "su - user2" -> me demande le mot de passe users2, puis je peux taper des commandes
  • "sudo --user = user2 [command]" -> me demande le mot de passe. Si je tape le mot de passe de user2, j'obtiens "Désolé, réessayez." message d'erreur comme si le mot de passe était incorrect. Si je tape le mot de passe de user1, il fonctionne correctement.

La commande sudo ne doit-elle pas nécessiter le mot de passe de l'utilisateur que je définis dans le paramètre "--user"?

Pablo
la source
2
Sudo (super utilisateur do) demande le mot de passe de l'utilisateur appelant la commande sudo. Su (changer d'utilisateur) demande le mot de passe de l'utilisateur qui va basculer.
M. Kennedy

Réponses:

21

Il s'agit d'un comportement attendu.

  • Le but de su est de changer d'utilisateur. Cela s'appelle l'outil d'identité d'utilisateur de substitution. su prend le mot de passe de l'autre utilisateur puisque vous passez à cet utilisateur.

    L'utilitaire su demande les informations d'identification utilisateur appropriées via PAM et bascule vers cet ID utilisateur (l'utilisateur par défaut est le superutilisateur). Un shell est ensuite exécuté.

    Source: page de manuel

  • Le but de sudo est d'exécuter une commande en tant qu'autre utilisateur. L' option -uou --userpour sudo spécifie cet utilisateur. Vous ne vous connectez pas en tant qu'utilisateur, exécutez simplement une commande. sudo prend votre mot de passe pour vérifier votre identité pour effectuer une telle tâche.

grg
la source
Donc, si user1 n'est pas dans le fichier sudoers, je ne serais pas capable de sudo, juste "su"?
Pablo
1
@Pablo C'est vrai
grg
@Pablo "changer d'utilisateur" contre "super utilisateur". L'un vous oblige à vous authentifier en tant qu'autre utilisateur; l'autre vous oblige à vous authentifier en tant que superutilisateur.
Boris the Spider du