sudo vs su (jako użytkownik inny niż root)

10

Mój komputer ma użytkownika 1 i użytkownika 2, obaj administratorzy.

Podczas gdy jestem zalogowany jako użytkownik1, próbuję:

  • „su - user2” -> monituje mnie o hasło users2, a następnie mogę wpisywać polecenia
  • „sudo --user = użytkownik2 [polecenie]” -> monituje mnie o hasło. Po wpisaniu hasła użytkownika2 pojawia się komunikat „Przepraszamy, spróbuj ponownie”. komunikat o błędzie, jakby hasło było niepoprawne. Jeśli wpiszesz hasło użytkownika 1, działa ono poprawnie.

Czy polecenie sudo nie powinno wymagać hasła użytkownika, które zdefiniuję w parametrze „--user”?

Pablo
źródło
2
Sudo (super użytkownik robi) prosi o hasło użytkownika wywołującego polecenie sudo. Su (zmień użytkownika) prosi o podanie hasła użytkownika, na który zostanie przełączony.
Pan Kennedy
Zobacz także: apple.stackexchange.com/q/49873/216401
Pan Kennedy

Odpowiedzi:

21

Jest to oczekiwane zachowanie.

  • Su ma na celu zmianę użytkownika. Nazywa się to zastępczym narzędziem tożsamości użytkownika. su bierze hasło drugiego użytkownika, ponieważ przełączasz się na tego użytkownika.

    Narzędzie su żąda odpowiednich poświadczeń użytkownika za pośrednictwem PAM i przełącza się na ten identyfikator użytkownika (domyślnym użytkownikiem jest administrator). Następnie wykonywana jest powłoka.

    Źródło: strona podręcznika man

  • Celem sudo jest wykonanie polecenia jako inny użytkownik. Opcja -ulub --userdla sudo określa tego użytkownika. Nie logujesz się jako ten użytkownik, wystarczy uruchomić polecenie. sudo bierze twoje hasło, aby zweryfikować twoją tożsamość do wykonania takiego zadania.

grg
źródło
Więc jeśli użytkownik 1 nie znajduje się w pliku sudoers, nie byłbym w stanie sudo, po prostu „su”?
Pablo
1
@Pablo To prawda
grg
@Pablo „zmień użytkownika” kontra „super użytkownik zrobić”. Jeden wymaga uwierzytelnienia jako drugi użytkownik; drugi wymaga uwierzytelnienia jako administrator.
Boris the Spider