Настройка sudo
Материал из Bryansk Linux Users Group.
Немного о самом sudo. Эта программа предназначена для запуска исполняемых файлов с привилегиями суперпользователя.
Синтаксис: sudo <исполняемый файл>
Разумеется если бы каждый пользователь мог выполнять программы с правами рута - ни к чему хорошему бы это не привело, поэтому для ограничения прав на использование sudo существует файл /etc/sudoers, права на чтение и изменение которого есть только у того-же рута. Для того чтобы разрешить какому-либо пользователю использовать sudo в файле /etc/sudoers необходимо прописать следующую строчку:
<имя пользователя> ALL=(ALL) ALL
чтобы дать права целой группе:
%<имя группы> ALL=(ALL) ALL
Эти строки дают выполнять ЛЮБЫЕ программы с правами суперпользователя root через команду sudo, что очень неправильно ввиду возникновения дыры в системе безопасности. Поэтому рассмотрим другой пример.
Добавим следующие строки в файл sudoers.
User_Alias STANDART_USERS = <пользователь1>, <пользователь2> [, ...] # This file MUST be edited with the 'visudo' command as root. # # See the man page for details on how to write a sudoers file. # Cmnd_Alias MUSTBE = /usr/sbin/pptp, /usr/bin/mc, /usr/bin/killall pppd [, ...] Defaults env_reset # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL) ALL STANDART_USERS ALL = MUSTBE
Алиас STANDART_USERS определяет некий список пользователей, нам необходимый. Алиас MUSTBE определяет какие файлы можно выполнять через команду sudo. строка STANDART_USERS ALL = MUSTBE указывает что STANDART_USERS могут выполнять только программы, перечисленные в MUSTBE. Обратите внимание, что "убить" от имени рута sudo дает только pppd. Попытка пользователей выполнить что-то другое приведет к отказу со стороны sudo. При выполнении команды программа требует не пароль рута, а пароль пользователя, если же вам очень лениво вводить его постоянно, вы можете сообщить sudo о том что во вводе пароля нет необходимости. Для этого, например, замените
STANDART_USERS ALL = MUSTBE
на
STANDART_USERS ALL = NOPASSWD: MUSTBE
Disaron 15:26, 4 августа 2007 (MSD)
Для того, чтобы изменить значение таймаута пароля, необходимо прописать опцию:
Defaults timestamp_timeout=x ,где x-время в минутах
Отключение таймаута, как несложно догадаться, достигается путем нулевого параметра времени:
Defaults timestamp_timeout=0
В случае отрицательного значения времени, пароль будет запрошен только первый раз.
mtech 12:01, 14 августа 2009 (UTC)
Никогда не редактируйте файл /etc/sudoers вручную - достаточно одного пробела, чтобы sudo не работало! Используйте для этого комманду:
# visudo
Она позволит вам избежать ошибки - при сохранении настроек они сохраняются во временный файл, проверяются и, если все впорядке, настройки применяются. В противном случае Вам будет предложено отредактировать файл еще раз.
В Debian и Ubuntu функции visudo выполняет редактор nano со специальными настройками
☺ 14:35, 13 июля 2007 (MSD)

