Sudo

Немного о программе sudo в unix

sudo

Sudo — стандартное средство наделить пользователя некоторыми административными правами доступа, без выдачи ему пароля на root. Sudo весьма полезна, когда на удаленном сервере работает много пользователей.

Sudo с английского означает substitute user and do, дословно "подменить пользователя и выполнить". Вызывается она просто:

sudo /etc/init.d/dhcpd restart # Запустить стартовый скрипт от имени root
sudo -u sysadmin whoami # Запустить команду от имени другого пользователя

Конфигурация Sudo

Программа sudo конфигурируется в файле /etc/sudoers и зачастую только с помощью специального редактора visudo. Базовый синтаксис (разделитель в строке, знак «,» ):

user hosts = (runas) commands # В /etc/sudoers
  • users один или более пользователей или группа (например %wheel) для расширения прав доступа
  • hosts списак хостов (или ALL)
  • runas список пользователей (или ALL) от чьего имени могут выполняться команды. Заключается в ( )!
  • commands список команд (или ALL), которые можно запустить от имени root или от имени других пользователей

Кроме того существуют псевдонимы User_Alias, Host_Alias, Runas_Alias и Cmnd_Alias. Полезно, если конфигурационный файл слишком большой. Пример файла sudoers:

# cat /etc/sudoers
 
# Псевдонимы хоста, подсети или имена хостов
Host_Alias   DMZ     = 212.118.81.40/28
Host_Alias   DESKTOP = work1, work2
 
# Псевдонимы пользователя, список пользователей имеющих некоторые права доступа
User_Alias   ADMINS  = colin, luca, admin
User_Alias   DEVEL   = joe, jack, julia
Runas_Alias  DBA     = oracle,pgsql
 
# Псевдонимы команд, список полных путей до команд
Cmnd_Alias   SYSTEM  = /sbin/reboot,/usr/bin/kill,/sbin/halt,/sbin/shutdown,/etc/init.d/
Cmnd_Alias   PW      = /usr/bin/passwd [A-z]*, !/usr/bin/passwd root # Not root pwd!
Cmnd_Alias   DEBUG   = /usr/sbin/tcpdump,/usr/bin/wireshark,/usr/bin/nmap
# Актуальные права доступа
root,ADMINS  ALL     = (ALL) NOPASSWD: ALL # ADMINS может что-то делать без пароля
DEVEL        DESKTOP = (ALL) NOPASSWD: ALL # Разработчики имеют полные права доступа на рабочих станциях
DEVEL        DMZ     = (ALL) NOPASSWD: DEBUG # Разработчики могут отлаживать DMZ сервера.
 
# Пользователь sysadmin может использовать некоторые команды
sysadmin     DMZ     = (ALL) NOPASSWD: SYSTEM,PW,DEBUG
sysadmin     ALL,!DMZ = (ALL) NOPASSWD: ALL # Какие-то права за рамками DMZ.
%dba         ALL     = (DBA) ALL # Группа dba может работать от имени пользователя базы данных
 
# Все могут монтировать/размонтировать CDROM на рабочих станциях
ALL          DESKTOP = NOPASSWD: /sbin/mount /cdrom,/sbin/umount /cdrom

Не будь занудой, поделись с друзьями.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

63 запросов. 0,419 секунд. 26.08 Мб