概要
sudoは、rootユーザー、または他のユーザーとしてコマンドを実行します。sudoはユーザー(どのユーザーがsudoできるか、どのユーザーにsudoできるか)、利用可能なコマンドの制限等の設定が可能ですが、デフォルト値でも制限がされている為、本稿ではsudoに関する簡単な説明までとします。
前提条件
OS
CentOS Stream 8を使用します。
SELinux
有効です。無効にする場合はこちらを参照して下さい。
Firewalld
無効です。有効化する場合はこちらを参照して必要な許可設定をして下さい。
所感
ここ最近よく使われるようになったsudoですが、OS管理者(インフラ/ネットワーク管理者)としては無意味に思えます。”OS設定はrootで実施する操作が殆ど”であり、sudoしてもいいですが、いちいちコマンドの先頭にsudoつけるのはナンセンスです。sudoしたほうが良いと思っている人、そうではない人のの目線が違うだけです。sudoでは実行できるコマンドの制限や実行したコマンドのログが残る為、例ですが「通常OS設定を行わないアプリケーション担当者に割り当てるユーザー」に対してなら、sudoが効果的だと思います。OS管理者はwheelグループに含めたユーザーからsuしたほうが良いでしょう。
設定
/etc/sudoers
/etc/sudoersはsudoの設定ファイルです。このファイルでsudoの挙動を制御しています。特に要件がなければデフォルト値から変更の必要はありません。
sudoの制限
デフォルトで下記の設定が有効です。rootユーザー、wheelグループに含まれるユーザーは、sudoを実行してどのユーザーとしてもコマンドを実行でき、且つどのコマンドも実行可能です。反対にwheelグループに含まれないユーザーはデフォルトではsudoを実行できません。このため、wheelグループに含めるユーザーは慎重に判断します(wheelグループに関してはこちらを参照ください)。また、OSインストール時にユーザーを作成し、管理者としてチェックを付けていた場合は、そのユーザーはwheelグループに含まれています。
root ALL=(ALL) ALL %wheel ALL=(ALL) ALL
書式は下記の通りです。上記のrootの行を例とします。行頭からスペース区切りで項目を分けています。新規にsudoを許可するユーザーやグループには、この書式に倣って新しい制限を作成したほうが良いでしょう。
設定値 | 設定値の説明 |
---|---|
root | sudoを実行できるユーザーまたはグループ(グループは%を付ける)を指定します。 |
ALL=(ALL) | 最初のALLはホストを示し、次のALLはどのユーザーにsudoできるかを示します。ALLは全てです。 |
ALL | どのコマンドを実行できるか。カンマ区切りで列挙します。ALLは全てです。 |