Как настроить sudoers, чтобы разрешить запуск команды sudo под другой группой и именем пользователя?

Как настроить sudoers, чтобы разрешить запуск команды sudo под другой группой и именем пользователя?

Как настроить, sudoersчтобы предотвратить появление Sorry, user ****** is not allowed to executeсообщения об ошибке.

Фон

Для проверки работы скрипта Python под учетной записью демона с меньшими привилегиями необходимо запустить:

$ sudo -u _denyhosts -g _denyhosts python /usr/local/bin/denyhosts.py 
-c /usr/share/denyhosts/denyhosts.cfg -n --purge --sync --verbose

Результат:

Sorry, user ****** is not allowed to execute 
'/usr/bin/python /usr/local/bin/denyhosts.py -c /usr/share/denyhosts/denyhosts.cfg 
-n --purge --sync --verbose' as _denyhosts:_denyhosts on ***.***.***.

Предполагается, что эта команда не выполняется из-за необходимости дополнительной настройки в sudoers.

$ sudo -l
Matching Defaults entries for *** on this host:
    editor=/usr/bin/nano, env_reset, env_keep+=BLOCKSIZE, env_keep+="COLORFGBG
    COLORTERM", env_keep+=__CF_USER_TEXT_ENCODING, env_keep+="CHARSET LANG
    LANGUAGE LC_ALL LC_COLLATE LC_CTYPE", env_keep+="LC_MESSAGES LC_MONETARY
    LC_NUMERIC LC_TIME", env_keep+="LINES COLUMNS", env_keep+=LSCOLORS,
    env_keep+=SSH_AUTH_SOCK, env_keep+=TZ, env_keep+="DISPLAY XAUTHORIZATION
    XAUTHORITY", env_keep+="EDITOR VISUAL", env_keep+="HOME MAIL"

User *** may run the following commands on this host:
    (ALL) ALL

_denyhostsУже пробовал добавить группу, sudoersвыполнив sudo visudoи вставив строку:

%_denyhosts    ALL=(ALL) ALL

Сохранение и повторная попытка не улучшают ситуацию.

решение1

Строка %_denyhosts ALL=(ALL) ALLозначает, что пользователи в _denyhostsгруппе могут запускать любые команды от имени любого пользователя. Это не то, что вы пытаетесь сделать: вам нужно разрешить пользователю ******запускать команды от имени пользователя _denyhostsи группы _denyhosts. Что-то вроде:

****** ALL = (_denyhosts : _denyhosts) ALL

решение2

Вам необходимо убедиться, что, несмотря на то, что пользователи из _denyhosts были добавлены в файл sudoers, пользователи, которым вы хотите разрешить выполнять эту команду, добавлены в группу _denyhosts в /etc/group.

$ sudo vi /etc/group
*snip*
_denyhosts:x:###:username1,username2,username3

Сохраните файл «группы» и повторите попытку.

Связанный контент