Пакет
Благодаря
Дополнительным преимуществом
Настройка
Эта утилита не даёт двум администраторам одновременно редактировать
Это руководство - всего лишь краткое введение в
Обращайтесь за подробными сведениями к страницам
руководств
Самая сложная часть
user host = commands
Согласно этому синтаксису, пользователь
swift localhost = /usr/bin/emerge
Вместо имени пользователя можно использовать название группы - в этом
случае имя группы нужно предварить символом
% wheel localhost = /usr/bin/emerge
Строку можно дополнить, чтобы разрешить выполнение нескольких
команд. Например, чтобы позволить запуск не только
swift localhost = /usr/bin/emerge, /usr/bin/ebuild, /usr/sbin/emerge-webrsync
Вы также можете указывать конкретную команду для запуска, а не только
общее имя программы. Это полезно в том случае, когда нужно ограничить
права пользователя на запуск приложения определённым набором опций
(**) командной строки. Утилита
Давайте попробуем такое (** что имеется в виду?):
$ sudo emerge -uDN world We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. Password:(ожидается пароль пользователя, не администратора!) Надеемся, вы прослушали обычную лекцию от Системного Администратора. Обычно она сводится к трём вещам: #1) Уважайте права других на частную жизнь (**) #2) Думайте, прежде чем печатать #3) Большим возможностям сопутствует и большая ответственность Пароль:
Пароль, который требует
Следует знать, что
$ sudo /usr/sbin/emerge-webrsync
В системах больших масштабов ввод имён пользователей (или узлов или
команд) — утомительное занятие. Для облегчения управления файлом
Host_Alias hostalias = hostname1, hostname2, ... User_Alias useralias = user1, user2, ... Cmnd_Alias cmndalias = command1, command2, ...
Один псевдоним доступен всегда и в любом месте — это псведоним
Вот пример использования псевдонима
ALL localhost = /sbin/shutdown
Другой пример — разрешение пользователю
swift ALL =/usr/bin/emerge
Интереснее определить набор пользователей, которые могут запускать
административные утилиты (такие как
User_Alias SOFTWAREMAINTAINERS = swift, john, danny User_Alias PASSWORDMAINTAINERS = swift, sysop Cmnd_Alias SOFTWARECOMMANDS = /usr/bin/emerge, /usr/bin/ebuild Cmnd_Alias PASSWORDCOMMANDS = /usr/bin/passwd [a-zA-Z0-9_-]*, !/usr/bin/passwd root SOFTWAREMAINTAINERS localhost = SOFTWARECOMMANDS PASSWORDMAINTAINERS localhost = PASSWORDCOMMANDS
Можно также разрешить пользователю выполнять приложение от имени
другого пользователя, а не администратора системы. Это может вас
заинтересовать(**), если нужно запускать программу от другого имени
(например,
В файле
users hosts = ( run-as ) commands
Например, чтобы разрешить пользователю
Cmnd_Alias KILL = /bin/kill, /usr/bin/pkill swift ALL = ( apache, gorg ) KILL
При таких настройках пользователь может выполнять
$ sudo -u apache pkill apache
Вы можете назначить псевдоним для пользователя, от имени которого
требуется запускать приложения, с помощью директивы
По умолчанию,
Разумеется, это поведение можно изменить: установите директиву
Например, для смены периода в 5 минут на 0 (чтобы не запоминать пароль
вообще) для пользователя
Defaults: swift timestamp_timeout= 0
Установка времени на
Другим параметром является запрос ввести пароль того пользователя, от
имени которого запускается команда. Для этого используется
Defaults: john runaspw, passwd_tries= 2
Другая интересная возможность - сохранение переменной среды
Defaults: john env_keep= DISPLAY
Можно изменять десятки настроек по умолчанию, пользуясь директивой
Если же вы хотите разрешить пользователю запускать определённые команды вообще
без запроса пароля, предваряйте команды параметром
swift localhost = NOPASSWD: /usr/bin/emerge
Что бы получить список своих прав, выполните
$ sudo -l User swift may run the following commands on this host:Пользователь swift может выполнять следующие команды на этом узле: (root) /usr/libexec/xfsm-shutdown-helper (root) /usr/bin/emerge (root) /usr/bin/passwd [a-zA-Z0-9_-]* (root) !/usr/bin/passwd root (apache) /usr/bin/pkill (apache) /bin/kill
Если в списке ваших команд в
По умолчанию, когда пользователь вводит пароль для аутентификации в
$ sudo -v
Обратный эффект достигается выполнением