sudo vs su (не пользователь root)


10

На моем компьютере есть user1 и user2, оба администратора.

Пока я вошел как user1, я пытаюсь:

  • «su - user2» -> запрашивает пароль пользователя user2, затем я могу набирать команды
  • "sudo --user = user2 [команда]" -> запрашивает пароль. Если я введу пароль пользователя user2, я получу «Извините, попробуйте еще раз». сообщение об ошибке, как будто пароль неверный. Если я введу пароль user1, он будет работать правильно.

Разве команде sudo не требуется пароль пользователя, который я определяю в параметре "--user"?


2
Sudo (super user do) запрашивает пароль пользователя, вызывающего команду sudo. Су (переключение пользователя) запрашивает пароль пользователя, на которого переключаются.
г-н Кеннеди

Ответы:


21

Это ожидаемое поведение.

  • Цель su - переключить пользователя. Он называется инструментом идентификации заменяющего пользователя. su принимает пароль другого пользователя, так как вы переключаетесь на этого пользователя.

    Утилита su запрашивает соответствующие учетные данные пользователя через PAM и переключается на этот идентификатор пользователя (пользователь по умолчанию - суперпользователь). Оболочка затем выполняется.

    Источник: Man страница

  • Цель sudo - выполнить команду от имени другого пользователя. Параметр -uor --userдля sudo указывает этого пользователя. Вы не входите в систему как пользователь, просто запускаете команду. sudo берет ваш пароль, чтобы подтвердить вашу личность для выполнения такой задачи.


Так что если user1 нет в файле sudoers, я бы не смог sudo, просто "su"?
Пабло

1
@Pablo Это правда
grg

@Pablo "переключить пользователя" против "супер пользователя делать". Один требует от вас аутентификации в качестве другого пользователя; другой требует, чтобы вы аутентифицировались как суперпользователь.
Борис Паук
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.