本文へスキップ
BecomeCoder

Linuxコマンドコース · 第4章 ユーザーと権限 · レッスン20

ユーザー・グループ・root ― サーバーは複数人で使う

ローカル実施

導入

自分の PC は「自分ひとりのもの」ですが、サーバーは違います。開発者・運用担当・自動処理のプログラムなど、たくさんの立場が1台を共有します。誰かの操作ミスが全体を壊さないよう、Linux は ユーザーループ、そして特別な管理者 root で世界を区切っています。

説明

Linux では、すべての操作が「誰の操作か」で管理されます。登場人物は3種類です。

flowchart TD
    root["root(管理者・UID 0)<br/>何でもできる特別な存在"]
    subgraph users["一般ユーザー"]
      u1["user(あなた・UID 1000)"]
      u2["deploy(デプロイ用)"]
      u3["www-data(Webサーバーが使う)"]
    end
    root -.->|強い権限で管理| users
    g["グループ(例: sudo, developers)<br/>ユーザーをまとめて権限を渡す単位"]
    u1 --- g
    u2 --- g
  • 一般ユーザー … あなた(user)のように、決められた範囲だけを操作できる立場。自分のホーム /home/user は自由に使えますが、システム全体(/etc など)は勝手に変えられません。番号(UID)で区別され、あなたは通常 1000 番あたりです。
  • root(ルート)UID 0 の特別な管理者。すべてのファイルを読み書きでき、どんな設定も変えられます。強力な反面、rm -rf / 一発でサーバーを壊せるほど危険です。
  • グループ … ユーザーをまとめる単位。「開発チーム全員にこのファイルを触らせたい」というとき、一人ずつ設定する代わりにグループで一括管理します。sudo グループに入っていれば「管理者権限を借りられる人」という意味になります。

前のレッスンで打った id を思い出してください。uid=1000(user) gid=1000(user) groups=1000(user),27(sudo) は、「あなたは UID 1000 の user で、user グループと sudo グループに属している」と読めます。

なぜここまで厳密に分けるのか。理由は 安全 です。

flowchart LR
    A["もし全員がroot だったら…"] --> B["誰かのミスやウイルスが<br/>サーバー全体を破壊できる"]
    C["立場を分けておくと…"] --> D["被害が自分の範囲に留まる<br/>大事な操作は管理者だけ"]

ふだんの作業は一般ユーザーで行い、システムを変える必要があるそのときだけ管理者権限を借りる——これがサーバーを安全に使う大原則です。その「借り方」を、このあとの susudo で学びます。

この章のまとめ

  • サーバーは複数のユーザーで共有し、操作はすべて「誰の操作か」で管理される
  • root(UID 0) は何でもできる管理者。強力ゆえに危険
  • グループはユーザーをまとめて権限を渡す単位(例: sudo グループ)
  • 原則は「ふだんは一般ユーザー、必要なときだけ管理者権限を借りる」