導入
自分の 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/>大事な操作は管理者だけ"]
ふだんの作業は一般ユーザーで行い、システムを変える必要があるそのときだけ管理者権限を借りる——これがサーバーを安全に使う大原則です。その「借り方」を、このあとの su と sudo で学びます。
この章のまとめ
- サーバーは複数のユーザーで共有し、操作はすべて「誰の操作か」で管理される
- root(UID 0) は何でもできる管理者。強力ゆえに危険
- グループはユーザーをまとめて権限を渡す単位(例:
sudoグループ) - 原則は「ふだんは一般ユーザー、必要なときだけ管理者権限を借りる」