Sudo это стандартный способ дать пользователю админские права, без необходимости раскрывать пароль администратора. Примеры:
sudo /etc/init.d/dhcpd restart # Run the rc script as root sudo -u sysadmin whoami # Run cmd as an other user
Установка
Ставится стандартно из пакетов
# CentOS/RHEL yum install sudo # Debian/Ubuntu apt-get install sudo
Настройка
Конфиг sudo находится в файле /etc/sudoers и должен редактироваться только через visudo. Базовый синтаксис (элементы списка разделены запятыми):
user hosts = (runas) commands # в /etc/sudoers
users один или несколько пользователей или группа %group (к примеру %wheel)
hosts список хостов (или ALL)
runas список пользователей (или ALL) от имени которых могут быть выполнены команды. Обязательно в скобках ( )!
commands список комманд (или ALL) которые могут быть выполнены от имени root или от пользователей (runas)
Дополнительно могут быть определены псевдонимы User_Alias, Host_Alias, Runas_Alias и Cmnd_Alias. Пример реального sudo-конфига /etc/sudoers:
# Host aliases are subnets or hostnames. Host_Alias DMZ = 212.118.81.40/28 Host_Alias DESKTOP = work1, work2 # User aliases are a list of users which can have the same rights User_Alias ADMINS = colin, luca, admin User_Alias DEVEL = joe, jack, julia Runas_Alias DBA = oracle,pgsql # Command aliases define the full path of a list of commands 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 # The actual rules root,ADMINS ALL = (ALL) NOPASSWD: ALL # ADMINS can do anything w/o a password. DEVEL DESKTOP = (ALL) NOPASSWD: ALL # Developers have full right on desktops DEVEL DMZ = (ALL) NOPASSWD: DEBUG # Developers can debug the DMZ servers. # User sysadmin can mess around in the DMZ servers with some commands. sysadmin DMZ = (ALL) NOPASSWD: SYSTEM,PW,DEBUG sysadmin ALL,!DMZ = (ALL) NOPASSWD: ALL # Can do anything outside the DMZ. %dba ALL = (DBA) ALL # Group dba can run as database user. # anyone can mount/unmount a cd-rom on the desktop machines ALL DESKTOP = NOPASSWD: /sbin/mount /cdrom,/sbin/umount /cdrom
По мотивам: http://sleepyhead.de/howto/?href=sudo