sudo -l -u -U cmdを使ってsudoerに問い合わせて、権限が常に有効であることを確認しますか?

sudo -l -u -U cmdを使ってsudoerに問い合わせて、権限が常に有効であることを確認しますか?

シナリオ:私のシェルは次のように実行されます。コマンドを実行する権限があることをuser_A確認したいです。user_Bsample_cmduser_C

私はsudo -n -l -u user_C -U user_B sample_cmdこれを達成するために使用しています。すべてのユーザーにはroot権限がありません。

これは常に動作しますか?それとも可能な失敗シナリオを見逃しているのでしょうか?

答え1

まず、マニュアルページには次のように表示されます-U

セキュリティポリシーにより、他のユーザーを一覧表示する機能が制限される可能性があります。 sudoersポリシーは、ルートまたは現在のホストに対するフルアクセス権を持つユーザーのみがこのオプションを使用できるようにします。

user_Aだから十分な権限がなければ失敗するようです。

たとえば、私は得る

$ sudo -l -u foo -U root ls
Sorry, user ilkkachu is not allowed to execute '/bin/ls' as root on thishost.

fooエラーメッセージは、ユーザーがコマンドを実行できるかどうかではなく、私はコマンドを実行できないことを示すので、やや混乱しています。

関連情報