はじめに
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
設定を行い、安全なシステム運用を心がけてください!