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

10

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

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

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

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

Pablo
источник
2
Sudo (super user do) запрашивает пароль пользователя, вызывающего команду sudo. Су (переключение пользователя) запрашивает пароль пользователя, на которого переключаются.
г-н Кеннеди
См. Также: apple.stackexchange.com/q/49873/216401
г-н Кеннеди

Ответы:

21

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

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

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

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

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

Grg
источник
Так что если user1 нет в файле sudoers, я бы не смог sudo, просто "su"?
Пабло
1
@Pablo Это правда
grg
@Pablo "переключить пользователя" против "супер пользователя делать". Один требует от вас аутентификации в качестве другого пользователя; другой требует, чтобы вы аутентифицировались как суперпользователь.
Борис Паук