Самым большим отличием является то, что sudo
вам не нужен пароль root для запуска команды от имени root, как это было бы для вас su
. Вам нужен пароль root, чтобы добавить кого-то в sudoers
файл, но после этого он может запустить все или некоторые (если вы его ограничили) как root, не требуя дополнительного пароля.
Другое отличие состоит в том, что, как вы заметили, sudo
гораздо более точный контроль над тем, какие команды можно запускать.
Для получения подробной информации о формате sudoers
файла запустите man sudoers
. Там вы найдете примеры, позволяющие запускать только определенные команды от имени пользователя root. Базовая структура каждой строки:
user_list host_list = cmd_list
cmd_list может включать сведения о том, на какого пользователя разрешено переключаться реальному пользователю. Например, вы можете позволить веб-мастеру переключиться на wwwroot, чтобы перезапустить apache, но не на root. Он также может включать другие параметры, например, требуется ли пароль пользователя перед переключением (это значение по умолчанию).
Пример строки может быть:
joe ALL=(ALL) ALL
что означает: пусть joe запускает любую команду на любом хосте как любой пользователь. Более жесткая линия может быть:
joe ALL=(operator) /usr/local/ops/
что означает: пусть joe выполнит любую команду в каталоге / usr / local / ops от имени пользователя «operator».
В конце справочной страницы sudoers приведено множество примеров.
Вы должны редактировать /etc/sudoers
с помощью команды visudo
. Это проверяет, является ли файл легальным, и помогает предотвратить его случайный взлом.
sudo
это потрясающее изобретение