rootとsudoの考え方 - なぜrootで作業しないのか

rootとsudoの考え方 - なぜrootで作業しないのか

この記事でできるようになること

  • root と一般ユーザーの違いを説明できる
  • なぜ普段は root で作業しないのかを理解し、sudo を安全に使える

前提知識(先に読むと理解しやすい記事)

sudo を付けろと言われたけど、root って結局なに?

ネットの手順をなぞっていると、sudo apt update のように先頭に sudo が付いたコマンドをよく見かける。「とりあえず付けておけば動く呪文」くらいの認識で使っていないだろうか。さらに調べると「rootすべての操作が許可された特別な管理者ユーザー。 で作業するな」「**最小権限けんげん**で」といった注意書きにぶつかる。これで余計に混乱する。

root は Linux で 何でもできる管理者アカウントだ。sudoその権限を1コマンドだけ一時的に借りる仕組みである。この記事では、なぜ普段は root を使わず sudo を使うのかを、リナとライニー先輩の会話で整理していく。読み終わるころには、sudo を「呪文」ではなく「意味の分かる安全装置」として使えるようになる。

この記事でわかること

  • root(スーパーユーザー)が「何でもできる」特別なアカウントであること
  • なぜ root で作業し続けると危険なのか
  • sudo が「1コマンドだけ権限を借りる」仕組みであること
  • susudo の違い
  • sudo command という基本の使い方
  • 「最小権限の原則」という考え方

1. そもそも root とは何か?

結論: root は Linux で唯一すべての操作が許された特別な管理者アカウント。権限チェックを一切受けず、システムのどんなファイルでも読み書き・削除できる。

リナ: ライニー先輩、コマンドの前に付ける sudo ってよく見るんですけど、そもそも root って何ですか?
ライニー先輩: root(ルート)は、Linux の中で「何でもできる」一番えらいアカウントだよ。「スーパーユーザー」「管理者」「特権ユーザー」も、ぜんぶ同じものを指す別の呼び方なんだ。
リナ: 何でもできる、というのは?
ライニー先輩: 学校でたとえるなら「全部屋のマスターキーを持っている人」だね。普通のユーザーが触れないシステムの設定ファイルを書き換えられる。ソフトをマシン全体にインストールもできる。他人のファイルすら消せるんだ。
リナ: 鍵のかかった部屋が、root にだけは無いということですね。
ライニー先輩: そのとおり。Linux の権限チェックは root には適用されないんだ。
リナ: えっ、じゃあ最強じゃないですか。普段から root を使えば全部解決するのでは…?
ライニー先輩: そう思うよね。でもそれが一番やってはいけないことなんだ。理由はこのあと順番に話すよ。

root = 権限チェックを免除めんじょされた特別アカウント

「強い」のではなく「制限が外れている」と捉えるのが正確だ。パーミッションそのものについては パーミッションの考え方 を参照。

2. なぜ root で作業し続けると危険なのか?

結論: root は権限チェックが効かないため、打ち間違い1つでシステム全体を壊せる。ミスやマルウェアの被害ひがいが「全領域」に及ぶのが危険の本質。

リナ: 何でもできて便利なのに、なぜ root を普段使いしちゃダメなんですか?
ライニー先輩: 「何でもできる」は「何でも壊せる」と同じ意味だからだよ。一般ユーザーなら、うっかり大事なファイルを消そうとしても止めてもらえる。
リナ: どう止まるんですか?
ライニー先輩: 画面に「権限がありません(Permission denied)」と出て、操作が中止されるんだ。
リナ: root だと、その表示は出ないんですか?
ライニー先輩: 出ない。root にはそのブレーキが無いんだ。たとえば消すディレクトリファイルをまとめて整理する入れ物。Windows や macOS の「フォルダ」と同じもの。を打ち間違えたとする。root なら警告なしでそのまま実行されてしまう。
リナ: 打ち間違えたところまで消えるんですか?
ライニー先輩: そう。一般ユーザーなら権限の壁で守られていた領域まで、まるごと消える。
リナ: こわい…。でも自分は気をつければ大丈夫じゃないですか?
ライニー先輩: 人間は必ずミスをする。それに、危ないのはミスだけじゃないんだ。
リナ: ほかに何があるんですか?
ライニー先輩: マルウェア(悪意のあるプログラム。ウイルスも同じものを指す呼び方)だよ。root で動かしたプログラムにマルウェアが混じっていたとする。その被害も root の権限で実行される。つまりシステム全体が乗っ取られてしまう。
リナ: 自分のミス以外でも危ないんですね。
ライニー先輩: そう。だから「普段は権限を絞っておく」のが鉄則てっそくなんだ。

削除は GUI と違って「ゴミ箱」に行かない

Windows や Mac のゴミ箱に慣れていると、ここが一番の落とし穴になる。

  1. GUI との差分: rm で消したファイルはゴミ箱に入らない。その場で完全に消える
  2. 安全なオプション: rm -i を使うと、1 件ずつ「本当に消す?」と確認してくれる
  3. 安心してほしいこと: 本サイトの仮想ターミナル入力したコマンドを解釈してコンピュータに実行させる対話プログラム。は学習用だ。あなたのパソコンは壊れない。安心して試してほしい

root で rm を実行すると、この「消えたら戻らない」範囲がシステム全体に広がる。だから普段は一般ユーザーでいる。

3. sudo は何をするコマンドなのか?

結論: sudo は「この1コマンドだけ root の権限で実行する」ための仕組み。普段は一般ユーザーのまま、必要なときだけ一時的に権限を借りられる。

リナ: じゃあ管理者権限が必要なときは、どうすればいいんですか?
ライニー先輩: そこで sudo(スードゥ / sudo)の出番。sudo は "superuser do" の略で、「この1回だけ管理者として実行して」とお願いするコマンドなんだ。
リナ: 1回だけ、というのがポイントですか?
ライニー先輩: そう。sudo apt update と打つと、その apt update というコマンドだけが root の権限で動く。終わればすぐ普段の一般ユーザーに戻る。ずっと root でいるわけじゃない。
リナ: 職員室の鍵を借りて、使ったらすぐ返すのと同じですね。
ライニー先輩: まさにそれ。しかも誰がいつ何を sudo で実行したかは記録(ログ)に残る。「いつでも root」と違って、責任せきにんの所在もはっきりするんだ。

sudo = 権限を「1コマンドだけ」借りる仕組み

  • sudo を付けたコマンドだけが root 権限で実行される
  • 実行後はすぐ元の一般ユーザーに戻る(root に居続けない)
  • 初回などはログイン中ユーザー自身のパスワードを聞かれる(root のパスワードではない)
  • 誰がいつ何を実行したかがログに残る

「ずっと管理者」ではなく「必要な一瞬だけ管理者」。これが安全の核心だ。

user が sudo にコマンドを渡し、root の権限でコマンドが実行され、結果が user に返るまでを時系列で並べた図。root の縦線には権限が有効な区間を示すオレンジの帯がある

図1: 権限を借りているのは、右端の縦線がオレンジの帯になっている一瞬だけ。それ以外の時間、user は一般ユーザーのままだ。右端の root は別の人ではなく root の権限そのもの、stdout は実行結果のことだ。パスワードの確認は図では省いている。

4. su と sudo はどう違うのか?

結論: su は root に「成り代わって居座る」コマンド、sudo は権限を「1コマンドだけ借りて即返す」コマンド。普段使いで安全なのは sudo。

リナ: 似た名前で su っていうコマンドも見かけました。これは sudo と何が違うんですか?
ライニー先輩: いい質問。su(substitute user=ユーザーの入れ替え)は「ユーザーを切り替える」コマンドだよ。引数なしで使うと root に切り替わる。一度切り替えると、exit するまでずっと root のまま作業することになる。
リナ: ずっと root のまま…さっき危ないって言ってたやつですね。
ライニー先輩: そう。su で root になると、そのあと打つコマンドは全部 root 権限。ブレーキの無い状態が続く。一方 sudo はコマンド単位だから、危険な状態にいる時間が一瞬で済む。
リナ: だから sudo のほうが推奨されるんですね。
ライニー先輩: そのとおり。最近の Ubuntu などは、そもそも root に直接ログインできない設定が標準。日常の管理作業は sudo で済ませるのが現代の作法だよ。
項目 su sudo
何をする root に切り替わって居座る 1コマンドだけ権限を借りる
権限の範囲 exit するまでずっと root そのコマンド実行中だけ
聞かれるパスファイルやディレクトリの場所を表す文字列。 root のパスワード 自分(実行ユーザー)のパスワード
ログ root になった記録は残るが、その後の操作は残らない 誰が何をしたか残る
普段使い 非推奨 推奨

sudo su という形も使われるが、まずは sudo command から

sudo susudo -i で「sudo 経由で root シェル(打ったコマンドを受け取って実行する対話プログラム。ターミナル・コンソールもほぼ同じものを指す呼び方)に入る」操作も存在する。連続して管理作業をしたい場面では使われるが、root シェルに居座る点では su と同じリスクがある。初心者のうちは「コマンドごとに sudo を付ける」基本形に慣れるのが安全。

5. sudo はどう使う?(基本の形)

結論: 管理者権限が要るコマンドの前に sudo を付けるだけ。sudo <コマンド> が基本形で、初回などは自分のパスワードを聞かれる。

リナ: 実際の使い方を教えてください。
ライニー先輩: 簡単だよ。管理者権限が必要なコマンドのsudo を付けるだけ。たとえばパッケージ(Linux にソフトを配る形式)の一覧を更新するなら、こう打つ。
リナ: コマンドの頭に付けるだけなんですね。
ライニー先輩: そう。最初に1回、自分のパスワードを聞かれる(画面には何も表示されないけど入力はできている)。一度通れば、しばらくは聞かれずに続けて使えるよ。
sudo apt update
[sudo] password for lina:
Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
...

今の自分が誰なのかは whoami で確認できる。

whoami
lina

sudo を付けたコマンドの中だけ root として動き、終われば lina に戻っている。

自分に何が許されているか sudo -l で確認

sudo を使えるユーザーや実行できるコマンドは、/etc/sudoers という設定で管理されている。自分にどんな sudo 操作が許可されているかは、次のコマンドで一覧いちらんできる。

sudo -l

「自分は何を管理者権限で実行できるのか」を把握しておくと、Permission denied で詰まったときの切り分けが速くなる。

6. 最小権限の原則とは?

結論: 「作業に必要な最小限の権限だけを持つ」という考え方。普段は一般ユーザーで過ごし、管理者権限は必要な瞬間だけ借りることで事故と被害を減らせる。

リナ: ここまでの話、ひとことでまとめると何になりますか?
ライニー先輩: 「最小権限の原則」だね。英語だと least privilege。必要最小限の権限しか持たないようにする、という考え方だよ。
リナ: 普段は弱いまま、必要なときだけ強くなる、みたいな?
ライニー先輩: まさにそう。普段から最強(root)でいると、ミスやマルウェアの被害も最強になる。でも普段は一般ユーザーでいれば、被害は自分の届く範囲で止まる。そして root が要る一瞬だけ sudo で借りる。
リナ: なるほど。だから「root で作業しない」「sudo を使う」がセットで言われるんですね。
ライニー先輩: その通り。これは Linux だけの話じゃなくて、セキュリティの世界では共通の鉄則。覚えておくとずっと役に立つよ。

最小権限の原則は習慣で身につく

  • 普段のログインは一般ユーザーで行う(root で常用しない)
  • 管理者権限が要るコマンドだけ sudo を付ける
  • sudo を付ける前に「このコマンドは本当に管理者権限が必要か」を一度考える
  • 何を実行しようとしているか分からない sudo コマンドは、コピペで実行しない

「強い権限はすぐ返す」を習慣にすれば、事故の大半は防げる。

7. 手を動かして確かめるには?

結論: whoami で今の自分を確かめ、sudo 付き/なしでコマンドの通り方がどう変わるかを実際に打つのが、いちばん速い理解の近道。

リナ: 頭では分かった気がしますが、まだ実感がないです…
ライニー先輩: こういうのは打って確かめるのが一番。whoami で今の自分を確認して、権限が要る操作を sudo あり・なしで試すと、「あ、ここで権限が必要なんだ」と体でわかるよ。
リナ: 自分のマシンで管理者コマンドを試すのはちょっと怖いです。
ライニー先輩: それなら、ブラウザで安全に試せる練習場を使うといい。壊す心配なく whoami や権限の感覚を確かめられるよ。
whoami
id
lina
uid=1000(lina) gid=1000(lina) groups=1000(lina),27(sudo)

id の出力に sudo(Ubuntu・Debian 系)または wheel(RHEL 系)のグループが含まれていれば、そのユーザーは sudo を使える。uid=1000 のように 0 以外なら、今は root ではなく一般ユーザーだ。

Penguin Gym Linux のターミナルwhoami を打って、「今の自分が誰か」を確かめてみよう。権限の感覚をつかむと、sudo を付ける/付けない の判断が自然にできるようになる。

idsudo -l は本サイトのターミナルでは未対応だ。この2つは実機の Ubuntu などで試してほしい。

リナ、sudo を付け忘れる

結論: 一般ユーザーのままシステム領域にファイルを作ると Permission denied で止まる。sudo を付けると通る(実機の Ubuntu での例)。

リナ: システムの設定ファイルを置く練習をしてみます。/etc に空のファイルを作ってみますね。
touch /etc/example.conf
touch: cannot touch '/etc/example.conf': Permission denied
リナ: あれ、断られました。コマンドは合っているはずなのに…。
ライニー先輩: それでいいんだよ。/etc は一般ユーザーが書き込めない場所なんだ。ブレーキがちゃんと効いた証拠しょうこだね。
リナ: エラーじゃなくて、守られていたということですか。
ライニー先輩: そう。ここで初めて「このコマンドには管理者権限が要る」と分かる。だから sudo を付け直すんだ。
sudo touch /etc/example.conf
ls -l /etc/example.conf
-rw-r--r-- 1 root root 0 Jun  6 10:10 /etc/example.conf
リナ: 今度は通りました。しかも所有者が root になっていますね。
ライニー先輩: いいところに気づいたね。sudo で作ったファイルは root のものになるんだ。「先に sudo なしで試して、断られたら付ける」——この順番なら、要らない権限を使わずに済むよ。

ミニ課題

結論: この記事で出てきた whoami / id / sudo -l を実際に打って、自分の権限を確かめよう。

ライニー先輩: 学んだことを自分の手で確かめてみよう。3 つの課題を用意したよ。

課題1: 今の自分が誰かを確かめよう

やること: 今ログインしているユーザー名を表示しよう。

ヒント1(方向づけ)を見る

「私は誰?」を英語でそのまま並べたような名前のコマンドがある。

ヒント2(コマンド名)を見る

whoami を使うよ。who am i(私は誰)をつなげた名前だね。

答えを見る
whoami
lina

課題2: 自分が sudo グループに入っているか確かめよう

やること: 自分の所属グループを表示して、sudo が含まれるか見よう。

ヒント1(方向づけ)を見る

ユーザー ID と所属グループをまとめて表示するコマンドがある。2 文字だよ。

ヒント2(コマンド名)を見る

id を使うよ。出力の groups= の部分に注目しよう。

答えを見る
id
uid=1000(lina) gid=1000(lina) groups=1000(lina),27(sudo)

groups= の中に 27(sudo)(RHEL 系なら wheel)があれば、そのユーザーは sudo を使える。この課題は実機の Ubuntu などで試そう。

課題3: 許された sudo 操作を一覧しよう

やること: 自分にどんな sudo 操作が許可されているかを表示しよう。

ヒント1(方向づけ)を見る

sudo 自身にオプションを付けると、許可の一覧を出せる。list(一覧)の頭文字だよ。

ヒント2(コマンド名)を見る

sudo -l を使うよ。

答えを見る
sudo -l
User lina may run the following commands on penguin:
    (ALL : ALL) ALL

実際は先頭に Matching Defaults entries のブロックも出るため、ここでは一部を省いている。初回はパスワードを聞かれる。入力しても画面には何も出ないが、そのまま打って Enter でよい。この課題も実機の Ubuntu などで試そう。

振り返り

結論: root は制限が外れたアカウント、sudo は権限を一瞬だけ借りる仕組み。この 2 つの区別が最小権限の原則につながる。

リナ: つまり root は「マスターキーを持ったまま歩き回る状態」で、sudo は「必要なときだけ鍵を借りて、すぐ返す」ということですね。
ライニー先輩: その理解で正しいよ。だから su で root に居座らず、コマンドごとに sudo を付けるほうが安全なんだ。
リナ: sudo なしで試して、断られたら付け直す。この順番も覚えました。
ライニー先輩: いい習慣だね。それが最小権限の原則を、毎日の操作で実践するということだよ。

今日の3行まとめ

結論: root の正体・sudo の仕組み・最小権限の原則の 3 点を押さえれば、管理者権限は怖くない。

  1. root は権限チェックが免除されたアカウント - 何でもできる代わりに、ミスも被害もシステム全体に及ぶ
  2. sudo <コマンド> は権限を1コマンドだけ借りる仕組み - su と違って root に居座らず、実行の記録も残る
  3. 最小権限の原則を習慣に - 普段は一般ユーザー、必要な一瞬だけ管理者。許可の確認は sudo -l

次に読む

この記事を共有

次の一手