Когда su и sudo используют разные пароли?

12

Я могу запустить все, используя sudo; мой пароль принят. Но всякий раз, когда я пытаюсь сделать это suиз оболочки, она терпит неудачу с:

su: неверный пароль

В чем может быть проблема?

Lazer
источник

Ответы:

22

suозначает замену пользователя, и если он вызывается без каких-либо аргументов, вы станете суперпользователем. Поэтому вы должны ввести пароль root.

Это не совсем удобно, если многим людям нужно использовать команды для системного администрирования или подобные вещи с расширенными правами пользователя. Вы просто не хотите, чтобы люди обладали неограниченными правами, используя один и тот же пароль root.

Решением для такого рода проблем является sudoзамещающий пользователь делает »). Это позволит вам указать команды, которые кто-то может вызвать, и определить права доступа. Для sudoвас не придется вводить пароль суперпользователя, но пароль пользователя , который пытается выполнить команду Судо.

В некоторых дистрибутивах пользователь root отключен по соображениям безопасности. Это может быть одним из объяснений, почему вы не можете использовать su. В этом случае для получения оболочки с привилегиями root используйте sudo -s;-)

echox
источник
5
Этот последний бит рекомендуется делать так, чтобы sudo su -тире означала установку среды в соответствии с профилем входа пользователя (в данном случае root). Это обычно дает небольшое повышение безопасности PATH, но все еще не защищает отecho hi > /dev/my_critical_filesystem
msw
аааа забыл этот :-) спасибо за добавление!
echox
@echox: Тогда есть ли разница между $ scriptи $ sudo script? Пользователь одинаков в обоих случаях.
Лазер
sudo allows a permitted user to execute a command as the superuser or another user, as specified in the sudoers file.- от человека судо. Обычно скрипт вызывается с правами root. В этом разница.
echox
1
@Chris: к сожалению, это необходимо, если вы хотите наследовать всю среду пользователя root, включая его PATH. Между прочим, я только что узнал, что "sudo -s", который я прокомментировал выше, но теперь удалил, больше эквивалентен "sudo-su", без черты: без изменений CWD, без изменений PATH.
Уоррен Янг
7

Команда su без опций по умолчанию позволит вам стать пользователем root. Он спрашивает не ваш пароль, а пароль root.

Команда sudo всегда запрашивает ваш пароль.

Мэтью Бранниган
источник
2
Примечание: если вы используете Ubuntu, по умолчанию пароль root заблокирован, поэтому вы можете не знать пароль root help.ubuntu.com/community/RootSudo
phunehehe
3
«Команда sudo всегда запрашивает ваш пароль». На самом деле это настраивается. Он также может быть настроен на запрос пароля root или пароля целевого пользователя (или вообще без пароля).
2010 г.