====== 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