1

У меня есть файл sudoers со многими записями.

Вверху находится настройка по умолчанию:

# default sudo password is the ROOT password (not the invoking user's password)
Defaults rootpw

Однако есть одна конкретная команда, которую я хочу разрешить пользователям запускаться от имени пользователя root, если они вводят свой собственный пароль.

Как указать, что для конкретной команды требуется пароль вызывающего пользователя - тем самым переопределяя набор "По умолчанию"?

например, как изменить приведенную ниже команду, чтобы требовать пароль вызывающего пользователя (не пароль root):

markus ALL = PASSWD: /usr/sbin/tcpdump -p -i eth2 host 192.168.14.15

1 ответ1

2

использование

Defaults!/usr/sbin/tcpdump !rootpw

отключить rootpw для одной команды. Смотрите этот ответ и / или man 5 sudoers для получения дополнительной информации.

Кроме того, опция NOPASSWD отключает запрос пароля, например

markus ALL = NOPASSWD: /usr/sbin/tcpdump -p -i eth2 host 192.168.14.15

наконец, вы можете отключить rootpw от одного пользователя с помощью

Defaults:markus !rootpw

Если вы хотите переопределить rootpw для конкретного пользователя и конкретной команды, можно использовать как минимум следующий обходной путь: создайте скрипт-обертку, например /usr/local/bin/special_tcpdump.sh

 #!/bin/sh
 /usr/sbin/tcpdump $*

Затем настройте sudoers:

 Defaults!/usr/local/bin/special_tcpdump.sh !rootpw
 markus ALL = PASSWD: /usr/local/bin/special_tcpdump.sh -p -i eth2 host 192.168.14.15

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .