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

3 ответа3

41

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

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

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

17

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

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

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

1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .