Advanced Ubuntu Administration and Management Best Practices
Ubuntu Server の運用項目を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
Ubuntu 26.04 で管理ユーザーを作成したら、次に確認するべきものは sudo 権限です。sudo は root 権限を使うための便利なコマンドであると同時に、誰がどこまで管理権限を持つのかを決める境界でもあります。
この記事では、/etc/sudoers、/etc/sudoers.d/、NOPASSWD、visudo、ログ確認の観点から、sudo 権限を安全に管理する基本手順をまとめます。
- sudo 権限の確認ポイント
/etc/sudoersと/etc/sudoers.d/の使い分け- NOPASSWD を使う範囲の決め方
visudo -cfで検証してから配置する手順- sudo 利用ログの確認
| 対象 OS | Ubuntu 26.04 Server |
|---|---|
| 主な設定 | /etc/sudoers、/etc/sudoers.d/ |
| 検証コマンド | sudo visudo -cf |
| 確認コマンド | sudo -l、journalctl |
| 注意点 | NOPASSWD は範囲を絞り、検証してから配置する |
sudo 権限で見るべきもの
sudo 権限管理では、ユーザーを sudo グループに入れることだけに目が向きがちです。しかし、実際にはユーザー、グループ、sudoers 本体、drop-in、検証、ログを分けて確認します。
- 誰に sudo 権限を与えるのか
- グループ単位か、ユーザー単位か
- パスワード入力を要求するか
- NOPASSWD を許可するコマンド範囲
- sudo の利用ログを確認できるか
現在の sudo 設定を確認する
まず、現在のユーザー、所属グループ、sudo ポリシーを確認します。設定を変更する前に現状を把握します。
whoami
id
getent group sudo
sudo -l
sudo visudo -c/etc/sudoers と /etc/sudoers.d を分ける
既定の sudo ポリシーは /etc/sudoers にあります。個別の管理ユーザーや用途ごとの設定は、/etc/sudoers.d/ に分けると管理しやすくなります。
sudo ls -l /etc/sudoers
sudo ls -l /etc/sudoers.d
sudo sed -n '1,220p' /etc/sudoers
sudo find /etc/sudoers.d -maxdepth 1 -type f -printsudo グループで許可する
Ubuntu では、sudo グループに所属するユーザーへ sudo を許可する構成が一般的です。ユーザーを追加した後は、再ログインして所属グループを確認します。
sudo usermod -aG sudo myadmin
id myadmin
getent group sudo
sudo -l -U myadminNOPASSWD の範囲を決める
NOPASSWD は便利ですが、すべてのコマンドへ広げると権限境界が弱くなります。自動化や運用で必要な範囲だけに絞り、理由を説明できる単位で管理します。
sudoers drop-in を検証して配置する
sudoers は構文を間違えると sudo が使えなくなる可能性があります。一時ファイルを作成し、visudo -cf で検証してから /etc/sudoers.d/ へ配置します。
sudo tee /tmp/admin-sudoers >/dev/null <<'EOF'
%sudo ALL=(ALL:ALL) ALL
myadmin ALL=(ALL) NOPASSWD: /usr/bin/systemctl status *, /usr/bin/journalctl *
EOF
sudo visudo -cf /tmp/admin-sudoers
sudo install -o root -g root -m 0440 /tmp/admin-sudoers /etc/sudoers.d/admin
sudo visudo -cf /etc/sudoers.d/admin
sudo rm -f /tmp/admin-sudoers設定後に sudo -l で確認する
配置後は、対象ユーザーで sudo -l を確認します。NOPASSWD の対象が広すぎないか、意図したコマンドだけになっているかを見ます。
sudo -l -U myadmin
sudo -u myadmin sudo -l
sudo -k
sudo -lログを確認する
sudo の利用はログで追える状態にしておきます。誰がどのコマンドを実行したかを確認できると、運用時の追跡がしやすくなります。
journalctl --since "1 hour ago" --no-pager | grep sudo
sudo grep sudo /var/log/auth.log
sudo grep sudo /var/log/syslog公開前の確認ポイント
sudo visudo -cが成功する- drop-in は
0440、owner はroot:rootである - NOPASSWD の対象コマンドが必要最小限である
sudo -lで対象ユーザーの権限を確認している- sudo の利用ログを確認できる
- 管理用の別セッションを残してから sudoers を変更する
まとめ
Ubuntu 26.04 の sudo 権限管理では、ユーザー、グループ、/etc/sudoers、/etc/sudoers.d/、NOPASSWD、ログを分けて確認します。
sudoers を変更するときは、一時ファイルを作り、visudo -cf で検証してから配置します。NOPASSWD は必要な範囲だけに絞り、設定後は sudo -l とログ確認まで行います。

