AlmaLinux9 root昇格制限 wheel設定

Linuxではroot昇格を制限することは伝統的に可能。その仕組みの一つである wheelグループ所属の設定がシンプルで簡単である。

Linuxで wheel グループを利用するメリット

1. root昇格の権限をシンプルに管理できる

  • /etc/sudoers に1行書くだけで「wheel グループ所属者は sudo 可能」というルールが完成。 %wheel ALL=(ALL) ALL
  • 個別ユーザーごとに sudo 権限を設定しなくてよいため、グループ単位での一括管理が容易

2. 伝統的で他のUnix系とも互換性がある

  • FreeBSD や macOS でも「管理者は wheel グループに属する」が共通ルール。
  • Linux でも sudo グループや admin グループの代わりに wheel を使えば、異なるUnix系OS間での運用ルールが統一しやすい。

3. susudo の両方に対応できる

  • su に対して pam_wheel.so を使うと、wheel グループに入っていないユーザーは root に su できない。
  • sudo に対しても /etc/sudoers%wheel で制御可能。
    → **「su でも sudo でも昇格できるのは wheel だけ」**という共通ルールを作れる。

4. セキュリティを強化できる

  • wheel に所属しないユーザーは、たとえ root パスワードを知っていても su で昇格できない。
  • 内部不正やアカウント乗っ取り対策として有効。
  • sudo と組み合わせればログ監査も可能(誰がいつ root 権限を使ったか記録)。

5. 管理者アカウントをひと目で確認できる

  • getent group wheel を見るだけで「root昇格可能ユーザー一覧」が取れる。
  • ユーザーが増えたり削除されたりしても、グループを見れば即確認できる。
  • 運用上の監査や権限レビューが楽。

⚖️ 他方式との比較

  • Ubuntu系の sudo グループ
    → wheel と同じ発想。ディストリごとに呼び方が違うだけ。
  • ユーザーごとに sudoers 設定
    → 柔軟だが、ユーザー追加・削除のたびに sudoers を編集する必要があり、運用コストが上がる。

🔑 結論

Linuxで wheel グループを利用するメリットは、

  • root昇格権限をシンプルに一元管理できる
  • 他のUnix系と共通の管理ルールを作れる
  • セキュリティ強化と監査性向上につながる

といえます。
特に複数管理者がいる環境では「wheelに所属=管理者」とできるのが大きな利点です。

vi /etc/pam.d/subashCopy

auth sufficient pam_wheel.so trust use_uid
auth required pam_wheel.so use_uid

コメントを外す

[@localhost ~]$ su -
Password:
su: Permission denied

usermod -G wheel [[root昇格可能アカウント]]

[@localhost ~]$ su -
Last login: Sat Aug 30 19:21:29 JST 2025 on pts/2
Last failed login: Sat Aug 30 19:40:12 JST 2025 on pts/1
There was 1 failed login attempt since the last successful login.

wheelグループから外す

# 現在所属しているグループを確認する
id -Gn [[root昇格可能アカウント]]

# 所属しているグループから wheel を外して登録しなおす
usermod -G [[root昇格可能アカウント]] [[root昇格可能アカウント]]
# usermod -G shinohara,example1,example2 shinohara

wheelグループに対してもrootパスワード入力を要求することはできる。しかし、rootパスワードを知らせるというリスクがあるため推奨されていない。

1. su の場合

  • /etc/pam.d/su に以下の行を有効にします。
auth required pam_wheel.so use_uid

  • wheel グループ以外 → root に su できない
  • wheel グループ所属者 → root に su できるが root のパスワード入力が必須

👉 メリット: 管理者は root パスワードを共有する形。sudo よりシンプルだが、パスワード漏洩リスクはある。


2. sudo の場合

デフォルトでは「sudo を実行した人自身のパスワード」を求めるのが一般的です。
しかし「wheel グループのユーザーにも root パスワードを要求」したいなら、/etc/sudoers に以下を追加します:

Defaults targetpw
ALL ALL=(ALL) ALL

  • wheel グループのユーザーが sudo <コマンド> を打つと、root のパスワードが要求される。
  • つまり「sudo は使えるが、root の秘密を知っていないと昇格できない」運用にできる。

⚖️ まとめ

  • su + pam_wheel.so
    → wheel グループ所属者だけ su できる。root パスワード必須。
  • sudo + Defaults targetpw
    → wheel グループ所属者に sudo を許可しつつ root パスワード必須にできる。

🔐 セキュリティ観点:

  • root パスワードを複数人で共有する必要があるため、監査性(誰が実行したかの追跡)や秘密保持のリスクが出る。
  • 一般的には「sudo + 各ユーザー自身のパスワード」の方が望ましいですが、ポリシー上 root パスワード必須にするなら上記の設定が使えます。