手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 sudo 権限の管理 – sudoers と NOPASSWD を安全に扱う

関連する記事

Ubuntu 26.04 で管理ユーザーを作成したら、次に確認するべきものは sudo 権限です。sudo は root 権限を使うための便利なコマンドであると同時に、誰がどこまで管理権限を持つのかを決める境界でもあります。

この記事では、/etc/sudoers/etc/sudoers.d/NOPASSWDvisudo、ログ確認の観点から、sudo 権限を安全に管理する基本手順をまとめます。

この記事で扱うこと
  • sudo 権限の確認ポイント
  • /etc/sudoers/etc/sudoers.d/ の使い分け
  • NOPASSWD を使う範囲の決め方
  • visudo -cf で検証してから配置する手順
  • sudo 利用ログの確認
対象 OSUbuntu 26.04 Server
主な設定/etc/sudoers/etc/sudoers.d/
検証コマンドsudo visudo -cf
確認コマンドsudo -ljournalctl
注意点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 -print

sudo グループで許可する

Ubuntu では、sudo グループに所属するユーザーへ sudo を許可する構成が一般的です。ユーザーを追加した後は、再ログインして所属グループを確認します。

sudo usermod -aG sudo myadmin
id myadmin
getent group sudo
sudo -l -U myadmin

NOPASSWD の範囲を決める

NOPASSWD は便利ですが、すべてのコマンドへ広げると権限境界が弱くなります。自動化や運用で必要な範囲だけに絞り、理由を説明できる単位で管理します。

NOPASSWD を使う場合でも、対象ユーザー、対象ホスト、対象コマンド、ログ確認の範囲を決めてから設定します。広い 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 とログ確認まで行います。

関連する記事
Ubuntu 26.04 sudo 権限の管理 – sudoers と NOPASSWD を安全に扱う

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る