|
Bog BOS: sudo: выполнение программ от чужого имени
|
Последнее изменение файла: 2017.10.17
Скопировано с www.bog.pp.ru: 2024.12.02
Bog BOS: sudo: выполнение программ от чужого имени
Пакет sudo позволяет системному администратору давать права определенным пользователям
(или группам) на исполнение конкретных программ с правами другого пользователя
(и записывать эти действия в журнал). Возможна привязка списка допустимых команд к имени хоста,
что позволяет использовать один файл настройки на нескольких хостах
с различными полномочиями.
Обычно требует аутентификации пользователя (например, ввода пароля).
Позволяет избегать слишком частого ввода пароля (по умолчанию - 5 минут).
Для борьбы с подменой динамических библиотек
из окружения удаляются переменные типа LD_* и т.п., а также IFS, ENV, BASH_ENV,
KRB_CONF, KRB5_CONFIG, LOCALDOMAIN, RES_OPTIONS, HOSTALIASES. Можно также
удалять текущую директорию из PATH.
Поддержка LDAP (/etc/sudo-ldap.conf, sudo-ldap.conf(5), sudoers.ldap(5)) и /etc/nsswitch.conf ("sudoers: ldap files").
Текущая версия 1.8.21 (сентябрь 2017, RHEL5 - 1.7.2p1, RHEL6 - 1.8.6p3, RHEL7 - 1.8.6p7 и 1.8.19p2;
делавшая ветку 1.8 команда выкинула работы 1.7.5-1.7.10).
Лицензия - ISC-style (BSD-like).
Состоит из файла настройки /etc/sudoers,
программы его редактирования visudo и клиентской программы
sudo (проигрывание журнала), настройка политик и дополнений.
В статье также описывается процедура установки (1.6) из исходных текстов и ключи configure.
Утилита visudo позволяет осуществить безопасное редактирование /etc/sudoers,
она осуществляет блокировку от одновременных изменений и проверяет файл на корректность после выхода из текстового редактора.
По умолчанию используется /bin/vi, можно изменить установить в переменной editor или разрешить (не советую)
использование переменных окружения VISUAL и EDITOR в переменной env_editor.
Не обрабатывает файлы из #includir.
Ключи:
- --check [--quiet] (только проверить существующий файл без вызова редактора)
- --file имя-файла (указать другой файл вместо /etc/sudoers)
- --strict (более строгая проверка)
- --help
- --version
- --export имя-файла (вывести sudoers в формате JSON, "-" - stdout)
В файле /etc/sudoers описываются права пользователей (real uid, не euid) на выполнение команд с помощью sudo.
Состоит из операторов трех типов: определение синонимов (Alias), переопределение
конфигурационных параметров и описание прав пользователей.
Если для одного пользователя подходит несколько описаний, то действует последнее.
Можно использовать шаблоны в стиле shell (glob(3) и fnmatch(3)) для имён хостов, путей файлов и аргументов команд (опасно),
обработка классов символов появилась в 1.7.
Комментарии начинаются с символа '#', если это не uid и не команды #include/#includedir.
Команды #include и #includedir (например, /etc/sudoers.d, файлы обрабатываются в лексикографическом порядке,
не обрабатываются файлы с "~" и "." в конце имени) позволяет включить содержимое указанного файла или каталога
(не более 128 уровней вложенности), макрос '%h' расширяется в короткое имя хоста.
Продолжение команды на следующей строке обозначается символом '\' в конце строки.
Восклицательный знак перед именем означаниет исключение из предыдущего списка (не отрицание!).
Синонимы:
- User_Alias имя = список-пользователей-через-запятую [:...]
- Runas_Alias имя = список-эффективных-пользователей-через-запятую [:...]
- Host_Alias имя = список-хостов-через-запятую [:...]
- Cmnd_Alias имя = список-команд-через-запятую [:...]
Имя может состоять из прописных латинских букв, цифр и подчеркивания.
Предопределены синонимы 'ALL' для каждого типа. netgroup - это NIS.
Имена можно заключать в кавычки, специальные символы могут быть представлены в виде \x20 (пробел).
Пользователь может определяться:
- имя
- #uid
- %имя-группы
- %#gid
- +netgroup
- User_Alias
Эффективный пользователь может определяться:
- имя
- #uid
- %имя-группы
- %#gid
- +netgroup
- Runas_Alias
Хост может определяться (восклицательный знак перед
именем означает отрицание; сетевая маска записывается в точечной записи или CIDR (число бит);
при указании имени хоста можно использовать шаблоны в стиле shell, но лучше при
этом использовать опцию fqdn; не стоит использовать имя localhost):
- имя-хоста
- IP-адрес
- network/netmask
- +netgroup
- Host_Alias
Команда может определяться
(восклицательный знак перед именем означает отрицание (вычитать опасные команды из ALL - плохая идея);
можно использовать шаблоны в стиле shell для имени файла и аргументов
(в 1.7 появились классы POSIX);
необходимо защищать обратным слешом от интерпретации разборщика
символы запятой, двоеточия, равенства и обратного слеша;
пустой список аргументов обозначается как "";
полное имя каталога должно оканчиваться на "/", разрешает выполнить
любую команду из данного каталога, но не из подкаталога):
- [{sha224|sha256|sha384|sha512}:контрольная-сумма ]полное-имя-файла
- [{sha224|sha256|sha384|sha512}:контрольная-сумма ]полное-имя-файла аргументы
- [{sha224|sha256|sha384|sha512}:контрольная-сумма ]полное-имя-файла '""'
- полное-имя-каталога/
- sudoedit
- Cmnd_Alias
Конфигурационные параметры можно переопределить для всех
пользователей, для определенных пользователей, для определенных хостов,
для выполняемых от имени указанного пользователя, для команд (указаны в порядке приоритета разбора,
используется последний подходящий):
- Defaults список-параметров-через-запятую
- Defaults@имя-хоста список-параметров-через-запятую
- Defaults:имя-пользователя список-параметров-через-запятую
- Defaults>имя-пользователя список-параметров-через-запятую
- Defaults!список-команд # с версии 1.7, здесь нельзя указать аргументы
Параметр задаётся в виде "имя = значение", "имя += значение",
"имя -= значение", "имя" или "!имя" (необходимо использовать
символы '"' и '\' в значениях при необходимости; += и -= добавляют и удаляют
элементы списка):
- флаги
- always_query_group_plugin (off; дополнение group_plugin будет использоваться не только для '%:имя-группы', но и для '%имя-группы')
- always_set_home (off; всегда устанавливать HOME)
- authenticate (on; пользователь должен вводить свой пароль)
- closefrom_override (off; возможность использовать -C)
- compress_io (on; сжимать журнал ввода/вывода)
- exec_background (off)
- env_editor (off в старых версиях или on в новых; visudo будет использовать переменную окружения VISUAL или EDITOR;
очень не рекомендуется или заполняйте editor)
- env_reset (on; сбросить переменные окружения, кроме HOME, LOGNAME, PATH, SHELL, TERM, USER, MAIL, USERNAME, SUDO_*)
- fast_glob (off; использовать fnmatch(3) вместо glob(3) при поиске файлов,
быстро, но опасно - не распознаёт выражения в командной строке вида "../bin/ls")
- fqdn (off; помещать в журнал и sudoers полное доменное имя хоста с использованием запросов DNS вместо простого `hostname`;
появляется зависимость от работоспосбности DNS)
- ignore_audit_errors (on)
- ignore_dot (off в старых версиях и on в новых; игнорировать "." и "" в $PATH)
- ignore_iolog_errors (off)
- ignore_logfile_errors (on)
- ignore_local_sudoers (off; не заглядывать в /etc/sudoers при использовании LDAP)
- ignore_unknown_defaults (off)
- insults (off; напугать пользователя, который ввёл неправильный пароль)
- log_host (off; записывать имя хоста в файл журнала)
- log_input (off; выполнять команду в псевдотерминале и записывать ввод пользователя в журнал ввода/вывода, stdin в отдельный журнал)
- log_output (off; выполнять команду в псевдотерминале и записывать вывод в журнал ввода/вывода)
- log_year (off; записывать в файл год в четырёхзначном формате
- long_otp_prompt (off; запрос для OTP в 2 строки)
- mail_all_cmnds (off; извещать по email при каждом вызове sudo, кроме -l и -v)
- mail_always (off; посылать письмо при каждом выполнении sudo)
- mail_badpass (off; посылать письмо при вводе неправильного пароля)
- mail_no_host (off; посылать письмо, если у пользователя нет прав на данном хосте)
- mail_no_perms off; посылать письмо, если у пользователя нет прав на данную команду)
- mail_no_user (on; посылать письмо, если пользователя нет в sudoers)
- match_group_by_gid (off; сравнивать группы не по именам, а по идентификаторам)
- netgroup_tuple (off; )
- noexec (off; попытка запретить запускать программу из команды махинациями с LD_PRELOAD для exec(), сомнительнно,
не помогает против статически собранных и эмулированных программ)
- pam_session (on; отдельную PAM сессию на каждую команду)
- pam_setcred (on; )
- passprompt_override (off; всегда использовать passprompt для запроса пароля)
- path_info (off в старых версиях и on в новых; уточнять причину отказа выполнения команды - не найдена в PATH)
- preserve_groups (off; не менять список групп при выполнении команды)
- pwfeedback (off, выводить звёздочки при вводе пароля)
- requiretty (off; выполнять команду только при запуске с реального tty, не из cron или скрипта)
- root_sudo (on; очень рекомендуется запретить использование sudo для root)
- rootpw (off; запрашивать пароль root вместо пароля пользователя)
- runaspw (off; запрашивать пароль указанного в runas_default пользователя вместо пароля текущего пользователя)
- set_home (off; установливать переменную окружения HOME для -s)
- set_logname (on; установливать переменныю окружения LOGNAME, USER и USERNAME)
- set_utmp (on; созжавать запись в utmp/utmpx при выделении псевдотермигала (log_input, log_output, use_pty))
- setenv (off; разрешить использовать -E, отключить обработку env_check, env_delete, env_keep)
- shell_noargs (off; разрешать запуск sudo без параметров - выход в shell)
- stay_setuid (off; при запуске комманды не менять реальный uid)
- sudoedit_checkdir (on; отказываться проходить по символьным ссылкам и редактировать файлы в каталогах,
в которых исходный пользователь имеет право на запись)
- sudoedit_follow (off; не отказываться проходить по символьным ссылкам)
- targetpw (off; запрашивать пароль указанного ключом -u пользователя вместо пароля текущего пользователя)
- tty_tickets (off в старых версиях и on в новых; отдельный интервал истечения времени действия пароля для каждого терминала)
- umask_override (off; использовать umask из sudoers вместо объединения с текущей umask)
- use_netgroups (on; )
- use_pty (off; использовать псевдотерминал)
- utmp_runas (off; указывать имя целевого пользователя в utmp/utmpx)
- visiblepw (off, не обязательно скрывать пароль при вводе)
- числа
- closefrom (3; обычно перед выполнением закрываются все файлы с 3-го дескриптора, см. -С)
- maxseq (2176782336; максимальный номер сессии при журналировании ввода/вывода)
- passwd_tries (3; )
- числа как флаги
- loglinelen (80; длина строк в файле журнала; 0 - бесконечная)
- passwd_timeout (5 минут; ожидание ввода пароля; 0 - бесконечная)
- timestamp_timeout (5 минут; интервал действия пароля; 0 - это 0; отрицательное число - до перезагрузки)
- umask (0022; umask для выполняемой команды образуется как объединение текущей umask и указанной; используёте 0777 чтобы umask не изменилась)
- строки
- badpass_message ("Sorry, try again"; сообщение при вводе неправльного пароля)
- editor (/bin/vi; список используемых visudo редакторов через ":")
- iolog_dir (/var/log/sudo-io; каталог для хранения журналов ввода/вывода;
журналы ввода/вывода каждой сессии записываются в отдельный каталог, содержащий следующие файлы:
log (основные данные о выполнившейся команде), timing (сколько байт прочитано и записано и с какими промежутками),
ttyin (ввод пользователя с tty, например, пароли), stdin, ttyout (вывод на псевдотерминал), stdout, stderr)
- iolog_file ("%{seq}"; имя файла внутри iolog_dir; при конструрировании имени можно использовать макросы:
- %{seq} - порядковый номер в base36
- %{user}
- %{group}
- %{runas_user}
- %{runas_group}
- %{hostname} - простое имя
- %{command} - базовая часть имени команды
- strftime(3)
- iolog_flush (off; не буферизовать вывод в журнал ввода/вывода; это строка?
- iolog_group (группа родительского каталога; группа создаваемых журналов и каталогов)
- iolog_mode (0600; права доступа для создаваемых журналов; не более 0666; для создаваемых каталогов добавляются необходимые x)
- iolog_user (root; владелец создаваемых журналов и каталогов)
- lecture_status_dir (/var/db/sudo/lectured; каталог для хранения информации о прочитанных лекциях)
- mailsub ("*** SECURITY information for %h ***"; текст темы письма; %h - имя хоста)
- noexec_file (удалён в 1.8.1; см. sudo.conf(5))
- pam_login_service ("sudo-i"; имя PAM-сервиса для "sudo -i"; см. /etc/pam.d/pam.conf)
- pam_service ("sudo"; имя PAM-сервиса для sudo; см. /etc/pam.d/pam.conf)
- passprompt ("Password:" в старой версии и "[sudo] password for %p:" в новой версии;
текст предолжения ввести пароль; см. ключ -p и переменную окружения SUDO_PROMPT; можно использовать макросы:
- %H - локальное доменное имя хоста
- %h - локальное простое имя хоста
- %p - имя пользователя, чей пароль запрашивается
- %U - имя целевого пользователя
- %u - имя исходного пользователя
- %%
- role (?; SELinux роль)
- runas_default (root; имя целевого пользователя по умолчанию)
- syslog_badpri (alert; какой уровень серьёзности syslog
(alert, crit, debug, emerg, err, info, notice, warning, none) использовать при неудачах (не прошёл аутентификацию, нет прав);
это строка как флаг?)
- syslog_goodpri (notice; какой уровень серьёзности syslog
(alert, crit, debug, emerg, err, info, notice, warning, none) использовать при удачном выполнении команды;
это строка как флаг?)
- syslog_maxlen (980; это число?)
- sudoers_locale ("C"; локаль для разбора sudoers, посылки email)
- timestampdir (/var/run/sudo в старых версиях и /var/run/sudo/ts в новых версиях;
каталог для хранения отметок времени для аутентификации; должна очищаться при перезагрузке)
- timestampowner (root; владелец каталогов для хранения информации о прочитанных лекциях и для хранения отметок времени для аутентификации)
- type (?; SELinux тип)
- строки как флаги
- env_file (; полное имя файла, содержащего значения переменных окружения; см. env_keep и env_check)
- exempt_group (; пользователи из данной группы не должны вводить пароль и на них не накладывается ограничения secure_path)
- group_plugin (; имеются "system_group.so" и "group_file.so имя-файла-в-формате-/etc/group";
путь в /usr/libexec/sudo к обработчику неюниксовых групп пользователей)
- lecture (once; закатывать лекцию при первом вызове: never, once, always; раньше это был флаг)
- lecture_file (имя файла с текстом альтернативной истории)
- listpw (any; запрашивать ли пароль при использовании ключа "-l": all, any, never, always)
- logfile (по умолчанию - запись в syslog; имя файла для записи журнала)
- mailerflags ("-t"; флаги вызова программы отправки email)
- mailerpath (путь к sendmail; имя программы отправки email)
- mailfrom (по умолчанию - имя пользователя; имя отправителя email в кавычках)
- mailto (root; кому посылать письма; рекомендуется заключать в кавычки)
- secure_path (не установлен; насильственно устанавливать PATH)
- syslog (authpriv; syslog facilities: authpriv, auth, daemon, user, local0-7)
- verifypw (all; запрашивать ли пароль при использовании ключа "-v": all, any, never, always)
- списки как флаги
- env_check (секция sanity вывода `sudo -V`; список имён переменных окружения с операциями работы со списком: =, +=, -=, !;
указанные переменные окружения удаляются, если содержат '%' или '/' и прочие безобразия)
- env_delete (секция remove вывода `sudo -V`; список имён переменных окружения с операциями работы со списком: =, +=, -=, !;
указанные переменные окружения удаляются при выключенном env_reset)
- env_keep (секция preserve вывода `sudo -V`; список имён переменных окружения с операциями работы со списком: =, +=, -=, !;
указанные переменные окружения не сбрасываются по env_reset)
Описание прав пользователей (списки через запятую,
теги и имена целевых пользователей наследуются):
список-пользователей список-хостов = список-описаний-команд [: список-хостов = список-описаний-команд ] ...
описание-команды ::= [ ( список-целевых-пользователей-u[:список-целевых-пользователей-g]) ]
[ ( ROLE=роль-SELinux|TYPE=тип-SELinux) {тег:} команда
Теги:
- NOPASSWD (не запрашивать пароль текущего пользователя, см. exempt_group)
- PASSWD
- NOEXEC (попытка запретить запускать программу из команды махинациями с LD_PRELOAD для exec(), сомнительнно,
не помогает против статически собранных и эмулированных программ)
- EXEC
- NOFOLLOW (не проходить по символьным ссылкам для sudoedit, sudoedit_follow)
- FOLLOW
- LOG_INPUT (см. log_input)
- NOLOG_INPUT
- LOG_OUTPUT (см. log_output)
- NOLOG_OUTPUT
- MAIL (см. mail_all_cmnds, mail_always, mail_no_perms)
- NOMAIL
- SETENV (см. setenv, -E, env_check, env_delete, env_keep)
- NOSETENV
Устанавливаются переменные окружения: MAIL (-i), HOME (-i, -H, -s и set_home, always_set_home),
LOGNAME, PATH, SUDO_COMMAND, SUDO_GID, SUDO_UID, SUDO_USER, USER, USERNAME.
В некоторых дистрибутивах по умолчанию добавлены непомерные разрешения:
в RHEL7 пользователям из группы wheel разрешено выполнять любые команды.
Нельзя давать права на выполнение программ, которые исходный пользователь может перезаписать
(не поможет даже проверка контрольной суммы).
Настройка политик и дополнений журнализации настраивается в /etc/sudo.conf (sudo.conf(5), sudo_plugin(8):
- настройка политик - "Plugin sudoers_policy sudoers.so опция ..." (опции
- sudoers_file=имя-файла
- sudoers_uid=идентификатор-пользователя
- sudoers_gid=идентификатор-группы
- sudoers_mode=режим-файла
- ldap_conf=имя-файла # ldap.conf
- ldap_secret=имя-файла # ldap.secret
- настройка дополнений журнализации - "Plugin sudoers_io sudoers.so")
- программа запроса пароля (перекрывается переменной окружения SUDO_ASKPASS) - "Path askpass имя-файла"
- фальшивые версии exec*() и пр. для тэга NOEXEC - "Path noexec /usr/libexec/sudo_noexec.so"
- каталог дополнений - "Path plugin_dir /usr/libexec/sudo"
- утилита sesh (SELinux shell) - "Path sesh /usr/libexec/sudo/sesh"
- вывод дампа памяти (см. также /proc/sys/fs/suid_dumpable) - "Set disable_coredump false"
- источник списка групп - "Set group_source {static|dynamic|adaptive"
- static - ядро
- dynamic - база групп
- adaptive - ядро для малого числа групп
- отладочная печать - "Debug {sudo|visudo|sudoreplay|sudoers} имя-файла подсистема@уровень-серьёзности,...", где
уровни серьёзности - crit, err, warn, notice, diag, info, trace, debug;
подсистемы - all, alias (sudoers), args (разбор командной строки), audit (sudoers), auth (sudoers), conv (обмен с пользователем,
defaults (sudoers), edit (sudoedit), env (sudoers), event, exec, ldap (sudoers), logging (sudoers), main, match (sudoers),
netif (сетевой интерфейс), nss (sudoers), parser (sudoers), pcomm (взаимодействие с дополнением),
perms (sudoers), plugin (настройка дополнения), pty, rbtree (sudoers), selinux, sssd (sudoers), util, utmp)
Команда sudo выполняет указанную в качестве параметра команду
от имени другого пользователя в зависимости от настроек.
Извещение о неавторизованных попытках посылаются по email по адресу, указанному в mailto.
Все использования sudo записываются в syslog и журнал.
При отсутствии команды от имени другого пользователя выполняется редактор (-e, sudoedit)
или командная оболочка (-s) или имитируется начальный вход в систему (-i).
Устанавливается требуемый реальный идентификатор пользователя и группы, euid, egid и список групп.
Перерабатываются переменные окружения (см. "sudo -V"). Запрашивается
пароль текущего пользователя и делается отметка, чтобы не запрашивать следующие timestamp_timeout минут.
Ключи:
- -A (запрашивать пароль с помощью программы, SUDO_ASKPASS или "Path askpass ..." в sudo.conf)
- -b (выполнить команду в фоновом режиме)
- -C дескриптор (обычно перед выполнением закрываются все файлы, кроме stdin (0), stdout (1) и stderr (2);
ключ -C позволяет оставить открытым дескрипторы меньше указанного)
- -E (сохранить переменные окружения, д.б. разрешено в настройках)
- -e имя-файла (редактировать указанный файл; в настройках должно быть разрешено
выполнять команду sudoedit; редактор выбирается из переменных окружения SUDO_EDITOR, VISUAL и EDITOR или переменной editor;
некоторая борьба с символьными ссылками; используется временный файл)
- -g имя-группы|#gid (перед выполнением установить группу)
- -H (установить HOME как описано в /etc/passwd для целевого пользователя)
- -h (вывести описание команды)
- -h имя-хоста
- -i [команда] (имитируется начальный вход в систему)
- -k [команда] (сбросить кеш авторизации, обнулить допустимое время использования sudo без повторного введения
пароля)
- -K (сбросить кеш авторизации, не требует пароля)
- -L (показать список возможных параметров с описанием, удалена в 1.8)
- -l [-l] [-U имя-пользователя] (показать список разрешенных команд, аргументов и умолчаний)
- -n (не интерактивный режим, не запрашивать пароль)
- -P (не устанавливать список групп; egid устанавливается)
- -p формат (задаёт текст приглашения при вводе пароля; %H - имя хоста, %h - короткое имя хоста, %p - имя пользователя, чей пароль
запрашивается, %U - имя пользователя, от чьего имени будет выполнена команда, см. passprompt_override)
- -r роль-контекста-SELinux
- -S (читать пароль с stdin вместо tty)
- -s [команда] (запустить командную оболочку, переменная окружения SHELL или база паролей)
- -t тип-контекста-SELinux
- -u имя-пользователя|#uid (с правами какого пользователя исполнить команду; по
умолчанию - root)
- -V (показать версию sudo; для root выдаются также параметры установки: параметры configure и что из них получилось, умолчания,
переменные окружения для проверки, удаления и сохранения)
- -v (продлевает допустимое время использования sudo без повторного введения
пароля на очередные 5 минут)
- -- (не интерпретировать остальные параметры)
Утилита sudoreplay проигрывает в реальном времени выходной журнал сессии sudo.
В качестве параметра указывается номер сессии (см. ключ --list).
Управление проигрыванием: " " - пауза, "<" - уменьшить скорость вдвое, ">" - увеличить скорость вдвое, "Ввод" - промотать до события.
Ключи:
- --help
- --version
- --list [выражение-поиска] (выражение состоит из предикатов сгруппированных операторами and, or, ! (не) и скобками, предикаты
(дата в формате ISO - "[CCYY-MM-DD] [HH:MM:SS]"):
- command расширенный-POSIX-шаблон
- cwd каталог
- fromdate дата
- group имя-группы
- runas имя-пользователя
- todate дата
- tty имя-tty
- user имя-пользователя
- --max-wait секунд (ограничить ожидание следующего события)
- --speed коэффициент-ускорения
- --directory=каталог (/var/log/sudo-io)
- --filter={stdin|stdout|stderr|ttyin|ttyout},... (фильтр типов журнала)
- скачать и разархивировать
- make distclean
- ./configure --sysconfdir=/usr/local/etc --with-pam --with-logfac=authpriv
--with-goodpri=info --with-badpri=err --with-ignore-dot --with-mailto=...
--with-fqdn --disable-root-sudo
- отредактировать Makefile
- make
- make install
- /usr/local/bin/sudo
- /usr/local/bin/visudo
- /usr/local/etc/sudoers
- /usr/local/man
- man5/sudoers.5
- man8/sudo.8
- man8/visudo.8
- настройка (visudo, samples.sudoers)
- настройка syslog.conf (sample.syslog.conf)
- /etc/pam.d/sudo (в качестве образца: sample.pam или /etc/pam.d/su)
Некоторые ключи configure:
- --prefix=/usr/local
- --sysconfigdir=/etc
- --with-skey (S/Key One Time Password)
- --with-opie (NRL OPIE One Time Password)
- --with-SecurID
- --with-fwtk (TIS Firewall Toolkit authsrv)
- --with-kerb4
- --with-kerb5
- --with-ldap
- --with-ldap-conf-file[=/etc/ldap.conf]
- --with-pam (можно сделать /etc/pam.d/sudo на основе /etc/pam.d/su)
- --disable-root-mailer (запускать почтовую программу от имени пользователя, а не root)
- --with-sudoers-mode=0440 (права доступа к конфигурационным файлам)
- --with-sudoers-uid=0
- --with-sudoers-gid=0
- настройки sudoers по умолчанию
- --with-logging=syslog (syslog, file или both)
- --with-logfac= (syslog facilities:
authpriv, auth, daemon, user, local0-7)
- --with-goodpri= (какой приоритет syslog использовать при удачном выполнении)
- --with-badpri= (какой приоритет syslog использовать при неудачах)
- --with-logpath=/var/log/sudo.log
- --with-loglen=80 (длина строк в файле; 0 - бесконечная)
- --with-ignore-dot (игнорировать "." в $PATH)
- --with-mailto=root (кому посылать письма)
- --with-mailsubject="*** SECURITY information for %h ***"
- --without-mail-if-no-user (не ябедничать, если пользователя нет в sudoers)
- --with-mail-if-no-host (ябедничать, если хоста нет в sudoers)
- --with-mail-if-noperms (ябедничать, если команды нет в списке разрешённых)
- --with-passprompt="Password:" (%h расширяется в имя хоста, %u - в имя пользователя)
- --with-fqdn (помещать в журнал и sudoers полное доменное имя хоста)
- --with-umask=022 (umask для выполняемой команды)
- --without-umask (не менять umask при выполнении команды)
- --with-runas-default=root
- --with-exempt=группа (пользователи из данной группы не должны вводить пароль, лучше
использовать NOPASSWD в sudoers)
- --with-secure-path=/bin:/usr/ucb:/usr/bin:/usr/sbin:/sbin:/usr/etc:/etc
(использовать вместо $PATH, не действует на пользователей из группы исключений)
- --without-lecture (не закатывать лекцию при первом вызове)
- --with-editor=имя-программы (текстовый редактор, используемый visudo)
- --with-env-editor (visudo будет использовать переменную окружения VISUAL или EDITOR;
очень не рекомендуется)
- --disable-authentication (не запрашивать пароль)
- --disable-root-sudo (запрещать использование sudo для root, очень рекомендуется)
- --enable-log-host (записывать имя хоста в журнал)
- --enable-noargs-shell (разрешать запуск sudo без параметров - выход в shell)
- --disable-path-info (не уточнять причину отказа выполнения команды)
|
Bog BOS: sudo: выполнение программ от чужого имени
|
Copyright © 1996-2024 Sergey E. Bogomolov; www.bog.pp.ru