Настройка 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)

Личные инструменты