====== sudo. Выполнение команды от имени другого пользователя ======
----
===== Установка sudo =====
==== Debian ====
По умолчанию в Debian не установлен sudo.
Установка:
apt-get install sudo
----
===== Параметры =====
^ Опция ^ Значение ^
| **%%-k [command]%%** | //позволяет сбросить таймаут до момента, когда необходимо будет снова вводить пароль. Если указать команду, которая может потребовать ввода пароля, то таймаут будет сброшен конкретно для этой команды.// |
| **%%-h%%** | //будет выведена небольшая подсказка на стандартный выход.// |
| **%%-V%%** | //отобразиться версия sudo и плагинов. Если запустить от root, то будут выведены все настройки.// |
| **%%-g group%%** | //позволяет задать от какой группы будет запущена команда.// |
| **%%-H%%** | //задает директорию, которая будет указана в переменной окружения HOME.// |
| **%%-i [command]%%** | //симулирует начальный вход. Если команда не указана, то будет произведен вход в систему, таким образом можно сделаться рутом вместо использования sudo su.// |
| **%%-l[l] [command]%%** | //если команда не указана, то будет выведен список доступных команд для вызвавшего пользователя (или пользователя указанного с параметром -U). Если указана команда и она доступна, то будет выведен полный путь до команды и доступные параметры. Если команда не доступна, то sudo закроется со статусом 1. Если использовать параметр -ll или указать -l два раза, то будет использован более подробный формат вывода.// |
| **%%-s [command]%%** | //будет запущена оболочка указанная в переменной окружения SHELL. Если указана команда, то она будет передана на исполнения запущенной оболочке.// |
| **%%-U user%%** | //совместно с параметром -l позволяет отобразить привилегии определенного пользователя. Доступ спискам привилегий по умолчанию есть у root и пользователей со всеми привилегиями (ALL).// |
| **%%-u user%%** | //указанная команда будет запущена от имени указанного пользователя, а не от root.// |
| **%%-v%%** | //позволяет продлить таймаут на 15 минут или на тот, который указан в sudoers), но не выполнять каких-либо команд.// |
----
===== Добавление пользователя в sudo =====
Управлять привилегиями пользователя в sudo можно путём редактирования конфигурационного файла **''/etc/sudoers''** или добавления нового конфигурационного файла в каталог **''/etc/sudoers.d''** \\
В первом случае необходимо использовать утилиту **visudo**:
visudo
Чтобы дать пользователю jessie полные права при использовании sudo, необходимо добавить следующую директиву:
jessie ALL=(ALL) ALL
----
===== Пример содержимого файла sudoers =====
# Алиасы содержащие имена пользователей
User_Alias FULLTIMERS = millert, mikef, dowdy
User_Alias PARTTIMERS = bostley, jwfox, crawl
User_Alias WEBMASTERS = will, wendy, wim
# Runas алиасы содержащие имена пользователей или групп от которых будут запускаться команды
Runas_Alias OP = root, operator
Runas_Alias DB = oracle, sybase
Runas_Alias ADMINGRP = adm, oper
# Алиасы для наборов хостов
Host_Alias SPARC = bigtime, eclipse, moet, anchor :\
SGI = grolsch, dandelion, black :\
ALPHA = widget, thalamus, foobar :\
HPPA = boa, nag, python
Host_Alias CUNETS = 128.138.0.0/255.255.0.0
Host_Alias CSNETS = 128.138.243.0, 128.138.204.0/24, 128.138.242.0
Host_Alias SERVERS = master, mail, www, ns
Host_Alias CDROM = orion, perseus, hercules
# Алиасы для наборов команд
Cmnd_Alias DUMPS = /usr/bin/mt, /usr/sbin/dump, /usr/sbin/rdump,\
/usr/sbin/restore, /usr/sbin/rrestore
Cmnd_Alias KILL = /usr/bin/kill
Cmnd_Alias PRINTING = /usr/sbin/lpc, /usr/bin/lprm
Cmnd_Alias SHUTDOWN = /usr/sbin/shutdown
Cmnd_Alias HALT = /usr/sbin/halt
Cmnd_Alias REBOOT = /usr/sbin/reboot
Cmnd_Alias SHELLS = /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh, \
/usr/local/bin/tcsh, /usr/bin/rsh, \
/usr/local/bin/zsh
Cmnd_Alias SU = /usr/bin/su
Cmnd_Alias PAGERS = /usr/bin/more, /usr/bin/pg, /usr/bin/less
----
===== Полезные примеры =====
* //Запустить bash от имени пользователя jessie://
sudo -u jessie /bin/bash