セキュリティ
【セキュリティ】権限は最小限に:rootで作業し続けてはいけない理由
2026年10月8日

レン
毎回sudoって打つの面倒だから、ずっとrootで作業してるんだけど…ダメ?
ウィルスン
…フフフ、ぜひそのまま続けてほしいものだ。rootは何でもできる権限。もしキミが動かしているアプリに1つでも穴があれば、ワタシはその穴からrootの力を丸ごと手に入れられる。サーバーごと乗っ取り放題なのだよ。

レン
ひぇ…!じゃあ一般ユーザーだとどうなるの?

プロクラ
被害を『その範囲だけ』に閉じ込められるんだ。これがセキュリティの基本原則、最小権限の原則。普段は権限の小さい一般ユーザーで作業して、管理者権限が必要なときだけsudoで一時的に借りる。そうすれば、万一侵入されても攻撃者ができることが限られる。
守りは「重ねる」のが基本
攻撃
ファイアウォール
不要な入口を塞ぐ
SSH鍵認証
総当たりを無効化
OS更新
既知の穴を埋める
サーバー
1つ破られても次の層で止まる。どれか1つでは不十分
アプリを動かすユーザーも分ける
権限を分ける目的は、間違いを防ぐことではなく、間違いの範囲を限ることです。どれだけ気をつけても事故は起きますし、アプリに弱点が見つかることもあります。そのとき、動かしていた権限がそのまま被害の上限になります。何でもできる権限で動かしていれば、被害も何でもありになります。

プロクラ
Webサーバーやアプリも、専用の権限の低いユーザーで動かすのが定石だよ。nginxならwww-dataユーザー、といった具合にね。アプリがrootで動いていると、アプリの脆弱性がそのままサーバー全体の乗っ取りに直結してしまう。
ファイル権限の基本
- 設定ファイルや鍵ファイルは chmod 600(本人だけ読み書き可)
- SSHの ~/.ssh ディレクトリは chmod 700
- Webで公開するファイルに 777 は絶対に使わない(誰でも書き換え可能になる)
- 「とりあえず777」で権限エラーを回避するのは、穴を開けているのと同じ
ウィルスン
その『とりあえず777』…ワタシが探し回っているものの一つだ。書き込み可能なディレクトリを見つければ、そこに悪意あるファイルを置いて実行させられる。面倒でも、必要な権限だけを与えるのだ。
サーバーの外にも同じ考え方が要る

プロクラ
最小権限は、Linuxのユーザーだけの話ではないよ。外部サービスの鍵やアカウントにも、そのまま当てはまる。
- APIキーは、必要な操作だけができるものを発行する
- 読み取りだけで足りるなら、書き込みの権限を付けない
- データベースの接続ユーザーに、テーブルを消す権限を与えない
- デプロイ用の鍵は、そのリポジトリだけに使えるものにする
- 共同作業者には、必要な範囲だけを渡す

プロクラ
「全部できる鍵を1つ作って、あちこちで使い回す」のが一番危ない。漏れたときに失うものが最大になるうえ、どこから漏れたのかも分からなくなる。
権限を見直すきっかけを作る
- 一時的に広げた権限は、その日のうちに戻す
- 作業が終わったアカウントと鍵は、そのタイミングで消す
- 年に数回、誰が何にアクセスできるかを一覧で確認する
- 「念のため」で付けた権限は、たいてい不要のまま残っている

レン
サーバーの中だけじゃなくて、鍵やアカウントにも同じ考え方なんだね。
VPSの料金を比較する
あわせて読みたい
- セキュリティ【セキュリティ】バックアップは最後の砦:ランサムウェアと事故に備える3-2-1ルールの意味、同じサーバーに置いてはいけない理由、何をどの頻度で取るのか、そして「取れているつもり」で戻せない事態を避ける確認方法を解説します。
- セキュリティコンテナは安全、ではないコンテナは壁が1枚増えるだけで、守ってくれる道具ではありません。権限・イメージの出所・ポートの公開範囲・認証情報の渡し方まで、設定で開く穴を解説します。
- セキュリティ侵入されたサーバーに現れる兆候侵入されたサーバーに現れる兆候を、見る場所4か所に絞って解説します。壊れないまま静かに使われ続ける場合の、分かりにくい兆候まで扱います。
- セキュリティそのパスワード、何が守れていないのか:長さ・使い回し・管理ツール複雑さより長さが効く理由、使い回しが一箇所の流出で全部を失わせる仕組み、管理ツールの現実的な使い方と、そもそもパスワードを使わない選択肢を解説します。