ユーザーが特定のコマンドを使用することを制限することはできません

ユーザーが特定のコマンドを使用することを制限することはできません

ユーザーが次のコマンドを使用して別のディレクトリに移動することを制限するために、visudoで次のコマンドを使用しようとしましたが、うまくいかないようです。

myuser ALL=!/home/ubuntu,!/usr/sbin/service,!/usr/bin/apt,!/usr/bin/vi,!/usr/bin/touch

visudoを保存しましたが、変更はsudoersによく反映されました。私がここで何を間違っているのか?

答え1

これは予想される動作です。 sudoers ファイルは sudo の実行時にのみ参照されるため、コマンドへのユーザーアクセスが拒否され、関連するエラーメッセージが表示されます。

sudo su
Sorry, user xxxx is not allowed to execute '/bin/su' as root on yyyyy.

ユーザーがコマンドを直接実行しようとするとsudoは関連しないため、ユーザーの権限が不足して個々のコマンドが失敗するとエラーメッセージが表示されます。

ファイルの前に感嘆符(!)を付けてユーザーが特定のファイルを実行するのを防ぐことはできますが、ユーザーがファイルを別の場所にコピーしてからその場所で実行するのを防ぐことはできません。

関連情報