如何配置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
组中的用户以任何用户身份运行任何命令。这不是您想要做的:您需要允许用户以 user和 group******
身份运行命令。就像是:_denyhosts
_denyhosts
****** ALL = (_denyhosts : _denyhosts) ALL
答案2
您需要确保即使 _denyhosts 中的用户已添加到 sudoers 文件中,您希望能够执行此命令的用户也已添加到 /etc/group 中的 _denyhosts 组中。
$ sudo vi /etc/group
*snip*
_denyhosts:x:###:username1,username2,username3
保存“组”文件并重试。