Судо Су против Су Линукс

24

Если я ввожу пароль, suкогда будет предложено, он не работает, а sudo suработает. Кроме того, когда команда выполняется с помощью команды sudo (command)sudo, она автоматически выполняется по умолчанию пользователем root (поскольку на странице руководства указаноsudo, sudoedit - execute a command as another user

michaelxu@michaelxu-server:~$ su
Password:
su: Authentication failure
michaelxu@michaelxu-server:~$ sudo su
[sudo] password for michaelxu:
root@michaelxu-server:/home/michaelxu# exit
AGZ
источник

Ответы:

41

Это потому, что suзапрашивает пароль пользователя, на которого вы переходите (по умолчанию это root), а sudoзапрашивает пароль вашей учетной записи и проверяет, разрешено ли вам запускать команду.

Когда вы запускаете, sudo suвы просите sudoзапустить команду suот имени пользователя root, которая дает вам оболочку root. Если вы используете только, suвы должны знать пароль целевого пользователя, чтобы иметь доступ.

Использование sudoбез параметров подразумевает, что вы хотите использовать root. Если вы хотите выполнить команду от имени другого пользователя, попробуйтеsudo -u <username> <command>

Ренан
источник
7
Еще один важный бит информации для понимания связанной команды sudo su otheruser- это то, suчто корень может переключаться на любых пользователей, не вводя их пароль, в то время как работающие некорневые пользователи suдолжны вводить пароль целевого пользователя. sudo suпоэтому запускается suот имени пользователя root, что позволяет вам получить оболочку для другого пользователя, не зная его пароля (если это разрешено sudoers).
Ли Райан
Итак, каким будет мой пароль root для команды "su"? Почему это не пароль, который я установил в начале установки?
Agz
Потому что ваш дистрибутив, вероятно, не установил его. Вы можете установить работающий пароль root sudo passwd(сначала введите свой пароль пользователя, затем выберите новый пароль root).
Ренан
Итак, на данный момент нет пароля? ... так что, по сути, root - это просто учетная запись, которую sudoers может использовать для внесения изменений в корневые файлы?
Agz
не только это, есть много других сервисов, которые должны запускаться от имени пользователя root (проверьте ps aux).
Ренан
17

suвыступает за ами ведьмой (или S ubstitute) у сер. Если имя пользователя не указано, по умолчанию он переключается на root. Он запрашивает пароль пользователя, на которого вы переключаетесь.

sudoиспользуется для запуска команды от имени пользователя root (то есть с правами root) или от имени других пользователей. Он запрашивает ваш пароль и проверяет, разрешено ли вам использовать sudo.

Когда вы печатаете su, вы просите переключиться на root, а запрашиваемый пароль - это пароль root. Когда вы печатаете sudo su, вы просите выполнить команду, чтобы переключиться на root как root , поэтому запрашиваемый пароль - ваш.

ForeverWintr
источник
1

... и решить проблему невозможности использования su в одиночку, sudo для корневой оболочки и установки пароля для root с помощью chpass.

Невин Уильямс
источник