はじめに
Linux システムでは、sudo コマンドを利用して特定のユーザーに管理者権限を付与することができます。
その権限管理を行う主要なファイルが /etc/sudoers であり、追加の設定を格納するディレクトリとして /etc/sudoers.d/ も存在します。
本記事では、これらの設定の優先度について詳しく解説します。
書こうと思ったきっかけ
/etc/sudoers.d/ と /etc/sudoers のどちらの設定が優先されるのか疑問に思ったため、整理しておくことにしました。
システム管理を行う上で、誤った設定によって sudo コマンドが正しく動作しなくなるリスクを避けるためにも、適切な管理方法を理解することが重要です。
優先順位のルール
/etc/sudoers ファイルと /etc/sudoers.d/ ディレクトリの読み込み順序は以下の通りです。
/etc/sudoersファイルが最初に読み込まれる。/etc/sudoers内の#includedir /etc/sudoers.dディレクティブによって、/etc/sudoers.d/内のファイルが追加で読み込まれる。-
/etc/sudoers.d/にあるファイルは、辞書順(アルファベット順)で読み込まれる。- 例:
00-custom→10-admin→99-userの順で適用。
- 例:
- 後から読み込まれた設定が優先されるため、
/etc/sudoers.d/にあるファイルの内容が/etc/sudoersの設定を上書きすることが可能。
備忘録メモ
/etc/sudoers.d/ のファイルは /etc/sudoers の後に読み込まれるため、**原則として /etc/sudoers.d/ に書かれた設定が優先されます。
** ただし、/etc/sudoers.d/ にあるファイルの内容が適切でない場合(文法ミスなど)、sudo の動作が正しく機能しなくなる可能性があるので注意が必要です。
確認方法
現在の sudo 設定が正しく機能するかを確認するために、以下のコマンドを実行してください。
sudo visudo
このコマンドを実行すると、sudo 設定の構文チェックが行われ、エラーがある場合は警告が表示されます。
注意点
-
sudoersファイルや/etc/sudoers.d/内のファイルを編集する際には、必ずvisudoコマンドを使用してください。 -
/etc/sudoers.d/内のファイルを管理する際には、ファイル名の命名規則に注意し、適切な順序で適用されるように設計しましょう。 - 重大なミスを防ぐために、新しいルールを適用する際には
sudo visudo -cを実行して事前にチェックすることを推奨します。
まとめ
/etc/sudoers は最初に読み込まれ、次に /etc/sudoers.d/ ディレクトリ内のファイルが辞書順で適用されます。
そのため、/etc/sudoers.d/ 内のファイルに後から書かれたルールが /etc/sudoers の設定を上書きすることができます。
しかし、誤った設定があると sudo の動作に影響を与える可能性があるため、visudo コマンドを活用して設定を適切に管理することが重要です。
適切な sudo 設定を行い、安全なシステム運用を心がけてください!