NOEXECが指定されたプログラムの実行をブロックしないのはなぜですか?

NOEXECが指定されたプログラムの実行をブロックしないのはなぜですか?

CentOS6.4でNOEXECを試しました。/etc/sudo.conf次のようにファイルを編集しました。

Path noexec /usr/libexec/sudo_noexec.so

そして/etc/sudoers

ssh ALL=(root) ALL,NOEXEC:/usr/bin/passwd

noexec libが正しいパスにあると確信していますが、ユーザーとしてsshを使用してもパスワードを変更できます。 NOEXECでは結果は出ません。アドバイスをいただける方ですか?

ベストアンサー1

このNOEXECフラグはプログラムの実行を妨げません。これは、リストされたプログラムが他のプログラムを実行するのを防ぎます。 ~から万寿石:

aaron  shanty = NOEXEC: /usr/bin/more, /usr/bin/vi

これにより、aaronユーザーはnoexecを有効にして/usr/bin/moreおよび/usr/bin/viを実行できます。これにより、これら2つのコマンドが他のコマンド(シェルなど)を実行するのを防ぎます。
システムがnoexecをサポートできるかどうかわからない場合は、いつでもnoexecが有効になっているときにシェルエスケープが機能していることを確認できます。

ユーザーが特定のコマンドを実行できないようにするには、たとえば、!次のようにします。

ssh ALL=(root) ALL, !/usr/bin/passwd

/usr/bin/passwd別の名前でコピーを作成してホストにコピーし、適切な権限などを設定できるため、この行はあまり役に立ちません。

おすすめ記事