Эффективное использование sudo

Автор: . Дата статьи: 17.10.2007 г.

Многие администраторы Linux-систем в своей работе нередко используют утилиту sudo, дающую возможность предоставлять пользователям неограниченные полнолномочия при работе с системой. И все они конечно же нередко вносили изменения в файле /etc/sudoers, добавляя в него новых пользователей.




Но, как показывает практика, в большинстве своем, администраторы используют в качестве шаблона строку:


root ALL=(ALL) ALL

,имеющуюся по умолчанию, и предоставляя неограниченный доступ пользователя root для остальных администраторов. К примеру:


root ALL=(ALL) ALL

jerry ALL=(ALL) ALL

dfs ALL=(ALL) ALL

Добавив таким образом пользователей можно предоставить определенным людям полномочия пользователя root, не сообщая им пароль. Однако часто бывает так, что не все пользователи, которым необходимо предоставить доступ с полномочиями root, заслуживают нашего доверия. Как же быть в этом случае? Здесь нам помогут возможности утилиты sudo.


Начнем с того, что синтаксис команды sudo имеет вид:


пользователь хост =(фактический пользователь) команда

Как мы видим выше, в первом столбце задается пользователь sudo, которому вы предполагаете предоставить полномочия. Во втором - мы определяем узлы сети, на которые должно распространяться действие команды.


К примеру, вы предполагаете дать возможность одному из ваших системных администраторов, доступ только к его системе и больше ни к какому-либо другому серверу:


mark des.teller.ru=(ALL) ALL

В круглых скобках необходимо указать имя фактического пользователя, обладающего правами на запуск команды. Это бывает удобным, когда необходимо кому-либо из пользователей выполнять какие-любо действия от имени других пользователей. К примеру:


vasya mail.teller.ru=(www) ALL

Ну, и последний столбец содержит команды, запускать которые имеет право пользователь, которому вы даете полномочия и имя которому указано в первом столбце. Допустим, строка типа:


vasya www.teller.ru=(www) /usr/sbin/apachectl

будет значить то, что пользователю vasya даются полномочия от имени www выполнять команду apachectl.


Если вашему новому системному администратору придется работать с большим количеством программ, то нет необходимости перечислять их в последнем столбце (кстати, отделяются друг от друга команды в последнем столбце при помощи запятой). В этом случае можно воспользоваться возможностью псевдонимов (aliases). Допустим:


User_Alias ADMINS=vasya,dfs,rita

Runas_Alias DAEMONS=bind,snmp,www

Host_Alias SERVERS=mail.teller.ru,www.teller.ru,ns.pye.ru

Cmnd_Alias PROG=/usr/sbin/named*,/bin/killall,/usr/bin/top,/usr/sbin/apachectl

ADMINS SERVERS=(DAEMONS) PROG

Если вы не располагаете временем на то, чтобы внести не один десяток сотрудников вашего отдела в список пользователей sudo (и представьте, что вы должны вспомнить все их имена пользователей!), то вам поможет возможность добавления в /etc/sudoers системных групп. Так, строка типа:


mins SERVERS=(DAEMONS) PROG

даст возможность всем пользователям системной группы admins выполнять команды, перечисленные в псевдониме PROG на серверах SERVERS от имени учетных записей псевдонима DAEMONS.





IT-поддержка

Оказываем квалифицированную помощь в поддержке Вашей IT-инфраструктуры

Подробнее




Мы в социальных сетях

Рекомендуем

IThowto

BananaPi Russian Team

Linuxway

Политика конфиденциальности

Все права на материалы, находящиеся на сайте, охраняются в соответствии с законодательством РФ.

При любом использовании материалов сайта письменное согласие обязательно.

Linuxway.ru 2021