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

Отмечено:

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