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 можно путём редактирования конфигурационного файла /etc/sudoers или добавления нового конфигурационного файла в каталог /etc/sudoers.d
В первом случае необходимо использовать утилиту visudo:

visudo

Чтобы дать пользователю jessie полные права при использовании sudo, необходимо добавить следующую директиву:

jessie   ALL=(ALL)   ALL

# Алиасы содержащие имена пользователей
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
  • sudo._vypolnenie_komandy_ot_imeni_drugogo_polzovatelja.txt
  • Последние изменения: 2015/12/19 00:00
  • (внешнее изменение)