「sudo -l」を実行するだけで、自分のLinuxアカウントがどこまでroot権限の操作をパスワードなしで許可されているか分かります。2026年8月はFedora/RHEL系だけでなくUbuntu 24.04でもsudo関連の権限昇格系脆弱性報告が相次いでおり、NOPASSWD設定や過剰なsudo権限が知らないうちに付与されていないかを、自分の手で確認する重要性が高まっています。本記事ではコマンドの読み方と、見つかった問題の直し方を初心者向けに解説します。
なぜ今「sudoの設定」を自分で点検すべきなのか
2026年7月19日から20日のわずか1日半で、Linuxカーネル向けのCVE(脆弱性識別番号)が432件も一斉公開されました。7月中には他にも40件超が公開されており、「重要なものだけパッチを当てる」という従来のやり方が追いつかなくなりつつあります。さらに、2007年から存在し19年間見過ごされてきたカーネルの脆弱性CVE-2026-43456(net/bondingサブシステムの型混乱)がGoogleのバグバウンティ企画kernelCTFで発見され、8万ドル以上の報奨金が支払われました。これはLinux 2.6.24〜6.12.77という非常に広い範囲のカーネルに影響し、悪用されると一般ユーザーの権限からroot権限へ昇格される恐れがあります。
IPA(情報処理推進機構)も2026年7月30日付の「2026年度 夏休みにおける情報セキュリティに関する注意喚起」で、システム構成の把握・脆弱性対策・設定確認・ログ監視の重要性を改めて呼びかけています。カーネル自体の脆弱性はディストリビューションのアップデートを待つしかありませんが、「自分のアカウントがどこまでの操作を許可されているか」というsudoの設定は、自分ですぐに確認・修正できます。侵入や誤操作が起きたときの被害の大きさは、この設定次第で大きく変わります。本記事ではその点検方法だけに絞って解説します。
sudo -l で自分の権限を確認する
実行するコマンドと見ているもの
まず、自分のアカウントに現在どんなsudo権限が設定されているかを確認します。
sudo -lこれは「自分(または指定したユーザー)が、どのコマンドをどのユーザー権限で実行できるよう/etc/sudoers系の設定に書かれているか」を一覧表示するコマンドです。設定を変更するものではなく、読み取るだけなので、実行しても環境は一切変わりません。パスワードを聞かれた場合はサーバーのログインパスワードを入力してください(sudoパスワードが未設定の場合は聞かれません)。
出力例と、どこを見て判断するか
一般的な出力は次のような形です。
Matching Defaults entries for kaz on server01:
env_reset, mail_badpass, secure_path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
User kaz may run the following commands on server01:
(ALL : ALL) ALLチェックすべきポイントは次の3つです。
出力の書き方 | 意味 | 危険度の目安 |
|---|---|---|
| 全ユーザー・全コマンドを実行可能。ただし実行のたびにパスワードが必要 | 管理者アカウントとしては標準的。ただしパスワードが弱いと危険 |
| 全コマンドをパスワードなしでroot権限実行可能 | 最も危険。このアカウントを乗っ取られた瞬間にroot権限を奪われる |
| そのコマンドだけパスワードなしで実行可能 | 用途が明確なら許容範囲。対象コマンドが広すぎないか要確認 |
特にNOPASSWD: ALLが出てきた場合は要注意です。これはSSHの鍵やパスワードが1つ漏れただけで、確認なしにroot権限まで一直線に到達できる設定を意味します。心当たりのないNOPASSWD行が出てきたら、次章で設定ファイル側の出どころを確認してください。
/etc/sudoers と /etc/sudoers.d/ を安全に読む
設定ファイルの中身を洗い出す
sudo -lは自分のアカウントの結果しか見えないため、サーバー全体でどのユーザー・グループにどんな権限が設定されているかは元ファイルを見る必要があります。
sudo cat /etc/sudoers
ls -la /etc/sudoers.d/
for f in /etc/sudoers.d/*; do echo "== $f =="; sudo cat "$f"; done1行目は本体の設定ファイル、2〜3行目は個別に追加された設定ファイル群(/etc/sudoers.d/配下)を1つずつ表示しています。sudoは/etc/sudoers本体だけでなく、このディレクトリに置かれたファイルもすべて読み込むため、本体がきれいでもsudoers.d側に権限が追加されていることがよくあります。いずれも読み取りだけで、設定は変更しません。sudo権限があれば実行できます。
出力のどこを見て正常・異常を判断するか
探すべき行は次のパターンです。
%sudo ALL=(ALL:ALL) ALL... sudoグループに所属する全ユーザーへの標準的な付与(Ubuntuの初期設定)。グループの中身はgetent group sudoで確認できますユーザー名 ALL=(ALL) NOPASSWD:ALL... 特定ユーザーへの無条件全権限。心当たりのないユーザー名があれば要調査90-cloud-init-usersのようなファイル名でNOPASSWD:ALL... クラウド(AWS/GCP/Azure等)のイメージが初期セットアップ用に自動生成したもので、初回起動時のcloud-init処理によるものなら想定内。ただしそのクラウドインスタンスに心当たりがない、または既に初期セットアップが終わっているのに残っている場合は削除を検討
心当たりのない行を見つけたら、まずlastコマンドやjournalctlでSSH侵入後のauthorized_keys改ざん確認2026/8で紹介した方法で、そのアカウントに不審なログイン履歴がないかも合わせて確認してください。設定の異常とログイン履歴の異常はセットで見ると原因を切り分けやすくなります。
過剰な権限を見つけたときの直し方
編集は必ず visudo 経由で行う
不要なNOPASSWD行やユーザーの権限を削除・修正する場合、nanoやvimで直接ファイルを開いて編集しないでください。sudoersファイルは構文が1文字でも壊れるとサーバー上の誰もsudoを使えなくなるという重大な失敗パターンがあります。必ず専用コマンドを使います。
sudo visudo # /etc/sudoers 本体を編集
sudo visudo -f /etc/sudoers.d/該当ファイル名 # sudoers.d 配下を編集visudoは保存時に自動で構文チェックを行い、エラーがあれば保存自体をブロックしてくれます。これが直接エディタで編集してはいけない理由です。修正前には念のためバックアップも取っておきます。
sudo cp -a /etc/sudoers /etc/sudoers.bak.$(date +%F)問題の行を消す(またはコメントアウトして#を先頭に付ける)だけで作業は完了します。元に戻すにはコメントアウトを外す、またはバックアップファイルをsudo cp /etc/sudoers.bak.日付 /etc/sudoersで戻すだけなので、慎重に進めれば失敗しても復旧できます。編集後は必ず別のターミナルを新規に開いたまま(既存のsudoセッションを閉じずに)sudo -lで意図通りの結果になっているか確認してください。設定を壊した場合に元のセッションが生きていれば、そこから復旧できます。
個人PCとサーバーで基準を変える
自宅の1人用PCであれば、自分のメインアカウントにNOPASSWDが付いていても実害は限定的です。一方、複数人がSSHでログインするサーバーや、インターネットに公開しているサーバーでは、NOPASSWD:ALLは原則付けない・付けるとしても特定コマンドに絞る、というのが安全な運用です。Ubuntu Server 26.04 LTSではsudoコマンド自体の実装がRustベースへ移行するといった変更もアナウンスされていますが、こうした内部実装の変更があっても「誰にどこまでの権限を与えるか」という設定の考え方自体は変わりません。
点検を1回で終わらせないために
sudoの設定は、新しいクラウドインスタンスを立てたときやパッケージの大型アップデート(Ubuntu 24.04から26.04 LTSへの移行など)のタイミングで意図せず変わることがあります。今回のsudo -lとsudoers点検に加えて、systemctl・cronで不審な自動起動を点検2026年8月で紹介した自動起動の確認も合わせて行うと、「誰が」「何を」「どのタイミングで」root権限の操作を行えるかを一通り把握できます。月1回など決まったタイミングで両方を実行する習慣をつけておくと、脆弱性報告が相次ぐ時期でも落ち着いて対応できます。
まとめ
2026年8月は大量のカーネルCVE公開や19年越しの権限昇格脆弱性の発覚が続き、Fedora/RHEL系・Ubuntu 24.04でもsudo関連の脆弱性報告が相次いでいます。カーネル自体のパッチ適用はディストリビューション任せになりますが、sudo -lと/etc/sudoers・/etc/sudoers.d/の点検は今すぐ自分の手で行えます。特にNOPASSWD: ALLという記述がないかを最優先で確認し、心当たりのない設定はvisudo経由で慎重に修正してください。読み取りだけなら環境を壊す心配はないので、まずはsudo -lを実行するところから始めてみてください。