Здравствуйте, дорогие читатели. Это продолжение цикла статей об установке и настройке Debian Linux на домашнем компьютере.
В этой записи я расскажу о том, как включить и настроить команду sudo, а также о том, зачем это нужно.
Из Википедии:
sudo (англ. superuser do, дословно «выполнить от имени суперпользователя») — это программа, разработанная в помощь системному администратору и позволяющая делегировать те или иные привилегированные ресурсы пользователям с ведением протокола работы. Основная идея — дать пользователям как можно меньше прав, но при этом ровно столько, сколько необходимо для решения поставленных задач.
Простыми словами — данная команда позволяет выполнять другие команды от имени суперпользователя (root) из своего терминала. sudo чем-то похожа на su, только имеет больший функционал.
Чтобы начать сессию суперпользователя в терминале введите следующее:
sudo -i
Аналог команды su. Вас попросят ввести ваш пароль (а в su нужно вводить пароль root'а).
Чтобы просто выполнить команду от имени root, не меняя сессии, ведите в терминале следующее:
sudo команда
Приступим к настройке sudo
Необходимые нам настройки хранятся в файле /etc/sudoers, но редактировать его напрямую нельзя даже суперпользователю. Необходимо использовать утилиту visudo:
su visudo
При сохранении файл будет проверен на ошибки в синтаксисе.
Простейшая конфигурация такова:
Defaults env_reset # User privilege specification root ALL=(ALL) ALL user ALL=(ALL) ALL
Такая конфигурация дает пользователю user все права пользователя root при выполнении команды sudo.
Если необходимо дать права группе, а не отдельному пользователю, можно использовать следующий синтаксис:
Defaults env_reset # user host = commands root ALL=(ALL) ALL %admin ALL=(ALL) ALL
Можно настроить для каждого конкретного пользователя доступ только к конкретным командам. Например:
# выполнение mount и umount пользователем user1 с любой машины user1 ALL = /bin/mount, /bin/umount # выполнение mount и umount пользователем user2 с машины user2-desktop user2 user2-desktop = /bin/mount, /bin/umount
Для команд, машин и пользователей можно создавать альясы (объединения для повторного использования) и указывать их. Примеры:
mycommands command_alias = command1, command2 myhosts host_alias = hostname1, hostname2 myusers user_alias = user1, user2
По умолчанию команда sudo запоминает пароли на 5 минут. Это значение можно поменять, указав директиву:
Defaults:user timestamp_timeout=10
Вместо 10-ти можно указать 0 (не запоминать пароль) или -1 (запоминать пароли на всё время сеанса пользователя).
Также можно выключить запрос пароля. Для этого используйте конструкцию NOPASSWD:
user user-desktop = NOPASSWD: /bin/kill
При настройке sudo помните о безопасности.
Спасибо за внимание.