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.d
sudoers
マニュアルページ:
複数の項目がユーザーと一致する場合は、順次適用されます。一致する項目が複数ある場合は、最後の項目が使用されます(最も具体的なものである必要はありません)。
ディレクトリの内容は通常、ファイルの末尾にあるディレクティブを介して最上位ファイルにインポートされるため、ルールを追加すると、最上位sudoers.d
ファイルで同じ一致するすべてのルールが上書きされます。sudoers
#includedir
/etc/sudoers.d/*
関連ルールをオーバーライドする正しい構文は次のとおりです。
ALL ALL = (ALL) !ALL
この文は、左から右へ次のことを意味します。
ALL
ユーザー...ALL
ホストから...- 次のコマンドはユーザーセット
ALL
の1つとして実行でき、デフォルトはrootです。 - いくつかのコマンド
!ALL
最後のビットは「コマンドなし」を意味するため、mainの「すべての人にすべてのコマンドを実行できるすべての許可」ルールを完全に無視しますsudoers file
。
/etc/sudoers
その後、許可を復元するには、基本ファイルに必要なルールを追加する必要があります。ファイルから選択的にコピーして貼り付けるだけです/etc/sudoers
。覚えておいてください:最後のゲームが勝ちます。
警告する:上記の行の後に何も入れないと、sudo権限が削除されます。みんなユーザー。root
ユーザーが無効になっているシステムでは、このsu
コマンドは機能しません。操作すると、誤ってコンピュータがロックされる危険性が高くなります。root
別の端末でテスト中に別の端末を開いたままにしておくことをお勧めします。
これはmacOS 10.12システムで確認されていますが、#includedir
デフォルトファイルの下部にこのディレクティブがあるすべてのシステムで機能しますsudoers
。
答え2
AFAIK、sudo 構成ファイルの sudo ルールは削除できません。
デフォルト設定ファイルを削除し、そのファイル/etc/sudoers
のみを使用してください/etc/sudoers.d/*
。両方を同時に使用すると混乱を招く可能性があります。