他のグループおよびユーザー名で sudo コマンドを実行できるように sudoers を構成するにはどうすればよいでしょうか?

他のグループおよびユーザー名で sudo コマンドを実行できるように sudoers を構成するにはどうすればよいでしょうか?

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の追加をすでに試みました:sudoerssudo visudo

%_denyhosts    ALL=(ALL) ALL

保存して再試行しても改善されません。

答え1

この行は、グループ%_denyhosts ALL=(ALL) ALL内のユーザーが_denyhosts任意のユーザーとして任意のコマンドを実行できることを意味します。これは、あなたがしようとしていることではありません。ユーザーがユーザーおよびグループ******としてコマンドを実行できるようにする必要があります。次のようになります。_denyhosts_denyhosts

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

答え2

_denyhosts 内のユーザーが sudoers ファイルに追加されている場合でも、このコマンドを実行できるようにするユーザーが /etc/group 内のグループ _denyhosts に追加されていることを確認する必要があります。

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

「グループ」ファイルを保存して再試行してください。

関連情報