sudoersでルールをキャンセルする方法は?

sudoersでルールをキャンセルする方法は?

sudoersは/etc/sudoers.dパーソナライゼーションルールを設定できるサブフォルダをサポートします。

私はこれを使用してメイン/etc/sudoersファイルを変更したくないと思います。

したがって、ファイル内のデフォルトの/etc/sudoers.d/99_adjustsカスタムルールを設定解除したいと思います。

ALL   ALL=(ALL) ALL

私はそれについての言及を避けようとしています/etc/sudoers
以前に設定したルールをキャンセルする機能が必要です。

!ALL   ALL=(ALL) ALL

しかし残念ながら、上記の方法は機能しません。マニュアルページを見ると、これを行うにはどのようなトリックがあるのか​​疑問に思います。

ベストアンサー1

以前に設定したルールをキャンセルする機能が必要です。

!ALL ALL=(ALL) ALL

しかし残念ながら上記の方法はうまくいきません

当然じゃない。!ALL開始は「すべてのユーザーにsudoを許可する」を意味するため、ルールは何もしません。その行に従うことは重要ではなく、どんなものとも一致しません。

たとえば、/etc/sudoers上書きしてこれを実行できます。/etc/sudoers.dsudoersマニュアルページ:

複数の項目がユーザーと一致する場合は、順次適用されます。一致する項目が複数ある場合は、最後の項目が使用されます(最も具体的なものである必要はありません)。

ディレクトリの内容は通常、ファイルの末尾にあるディレクティブを介して最上位ファイルにインポートされるため、ルールを追加すると、最上位sudoers.dファイルで同じ一致するすべてのルールが上書きされます。sudoers#includedir/etc/sudoers.d/*

関連ルールをオーバーライドする正しい構文は次のとおりです。

ALL ALL = (ALL) !ALL

この文は、左から右へ次のことを意味します。

  1. ALLユーザー...
  2. ALLホストから...
  3. 次のコマンドはユーザーセットALLの1つとして実行でき、デフォルトはrootです。
  4. いくつかのコマンド!ALL

最後のビットは「コマンドなし」を意味するため、mainの「すべての人にすべてのコマンドを実行できるすべての許可」ルールを完全に無視しますsudoers file

/etc/sudoersその後、許可を復元するには、基本ファイルに必要なルールを追加する必要があります。ファイルから選択的にコピーして貼り付けるだけです/etc/sudoers。覚えておいてください:最後のゲームが勝ちます。

警告する:上記の行の後に何も入れないと、sudo権限が削除されます。みんなユーザー。rootユーザーが無効になっているシステムでは、このsuコマンドは機能しません。操作すると、誤ってコンピュータがロックされる危険性が高くなります。root別の端末でテスト中に別の端末を開いたままにしておくことをお勧めします。


これはmacOS 10.12システムで確認されていますが、#includedirデフォルトファイルの下部にこのディレクティブがあるすべてのシステムで機能しますsudoers

おすすめ記事