この組み合わせは合法的ですか?
username ALL=(ALL) NOPASSWD: /usr/bin/foo, PASSWD:ALL
それとも、互いに衝突したりキャンセルしたりしますか?
答え1
見ているsudoers
マニュアルページ私はあなたが一緒にできると言いたいです:
Tag_Spec
A command may have zero or more tags associated with it. There are eight
possible tag values, NOPASSWD, PASSWD, NOEXEC, EXEC, SETENV, NOSETENV,
LOG_INPUT, NOLOG_INPUT, LOG_OUTPUT and NOLOG_OUTPUT. Once a tag is set on
a Cmnd, subsequent Cmnds in the Cmnd_Spec_List, inherit the tag unless it
is overridden by the opposite tag (i.e.: PASSWD overrides NOPASSWD and
NOEXEC overrides EXEC).
PASSWD:ALL
後で説明しますNOPASSWD
。マニュアルページには、何を試しているかを示す例もあります。
デフォルトでは、sudoはコマンドを実行する前にユーザーが自分自身を認証する必要があります。この動作は NOPASSWD タグで変更できます。 Runas_Spec と同様に、NOPASSWD タグは Cmnd_Spec_List の後に続くコマンドのデフォルト値を設定します。代わりに、PASSWDタグを使用して状況を元に戻すことができます。たとえば、
ray rushmore = NOPASSWD: /bin/kill, PASSWD: /bin/ls, /usr/bin/lprm