シナリオ:私のシェルは次のように実行されます。コマンドを実行する権限があることをuser_A
確認したいです。user_B
sample_cmd
user_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
エラーメッセージは、ユーザーがコマンドを実行できるかどうかではなく、私はコマンドを実行できないことを示すので、やや混乱しています。