Linuxのユーザやグループについて種類や管理方法など、初めてLinuxを使う人向けに基礎を説明します。
本書は概要だけの説明なので、ユーザ作成コマンドなど実践方法の説明はありません。
ユーザ
ユーザの種類
Linuxのユーザは 一般ユーザー(通常ユーザ)、管理者(root)、システムユーザーの3種類が存在します。
- 一般ユーザー(通常ユーザ)
日常的にLinuxにログインして利用するユーザです。
一般的なファイル編集やコマンドの実行はできますが、システム全体に関わる操作(サービスの起動・停止、パッケージのインストールなど)は制限されています。 - 管理者(root)
最も権限が強い特別なユーザで、全ての操作が可能です。
管理者(root)のパスワードを各担当者へ共有してLinuxの設定変更などの操作をする場合もありますが、このようにすると誰がどの操作を行ったのか区別できなくなるとの、ある担当者が担当を外れたとしてもパスワードを知っているので操作ができてしまうなど、セキュリティ上の問題があります。
よって、一般的にはSSHでのrootログインを無効化します。 - システムユーザー
内部でプログラム(データベースサービスやWEBサービスなど)を実行するためのアカウントです。
セキュリティを考慮し、ログイン出来ないようになっています。

ユーザの属性
ユーザにはユーザ名の他に様々な属性があります。
| 属性名 | 説明 |
|---|---|
| ユーザ名 | ログインの際に使用します。 ユーザを識別する一意の名前なのでほかのユーザと重複するユーザ名は使用できません。 また、ユーザ名は数値のみでは作成できません。 |
| UID | ユーザに割り当てられるIDで、全てのユーザはUIDを持っています。 rootユーザのUIDは0、システムユーザは1〜999、一般ユーザは1000以降を使用します。 |
| ホームディレクトリ | ユーザの作業ディレクトリです。 ※次章で解説 |
| フルネーム(コメント) | 本名や部署などの情報です。 |
ユーザ専用の領域「ホームディレクトリ」
ホームディレクトリとは、ユーザー専用の作業領域で、ユーザごとに作成されます。
ホームディレクトリは「/home/ユーザー名」となります。

システムユーザーには不要なので作成しないことが多いです。
(逆にホームディレクトリがないユーザーは、パスワードを持っていても、コンソールやデスクトップからログインできないです。)
グループ
Linuxはユーザをまとめて管理するグループがあります。
ユーザは 必ず最低1つのグループに所属する必要があります。また、ユーザは複数のグループに属することができます。

プライマリグループとセカンダリグループ
Linuxのユーザのデフォルトグループは、プライマリグループといい、それ以外はセカンダリグループといいます。
プライマリグループは、ユーザーが作成したファイルやディレクトリにデフォルトで関連付けられるグループです。

Red Hatなどではユーザ作成時にそのユーザ名と同じ名前のプライマリグループを自動生成するのがデフォルトです。
この仕組みを User Private Groups(UPG)方式 と呼びます。

アクセス権付与はグループ単位が基本
Linuxはファイルに対し誰が読取・編集・実行できるのかを設定し、関係外の人がファイルにアクセスできないようにします。
このとき、権限をユーザーごとに割り当てすることもできますが、基本的にグループ単位で割り当てをすると管理が容易になります。

管理者権限になれるグループ「wheel」(「sudo」)
Linux では、本来 rootユーザだけが強い権限を持っています。
例えば、Linuxサーバのシステム担当者が複数人いて、彼らの中でrootユーザのパスワードを共有すれば運用が楽に思えますが、次の問題があります。
・担当を外れた場合も出パスワードをrootの知っているので、管理者の操作ができてしまう。
・サーバの設定をした場合、誰がやったのか追えない。

また、rootのパスワードが関係者外の人にばれた場合、悪用されてしまう可能性があります。
このような理由から、rootユーザは無効にし、担当者ごとに一般ユーザを作成するのが一般的です。

原則、一般ユーザだけでLinuxを操作する場合は、シャットダウンなどいくつかの操作は制限されてしまいます。
そこで一般ユーザでも管理者の操作が可能な権限を付与することができます。
Linuxにはroot と同じくらい強い操作(管理者操作)を許可するための特別なグループ「wheel」(Ubuntu / Debian 系だと「sudo」)があり、これに必要な人だけに管理権限を渡せるのです。

「最小特権の原則」を考慮したユーザ管理
ユーザには必要最小限の権限だけを与え、不要な権限は持たせないという考え方はセキュリティでの鉄則です。
基本的には以下の内容です。
- rootユーザのログインは許可しない
- 通常は一般ユーザでログインし、管理作業許可されたユーザ(wheelグループに属するユーザ)が一時的に昇格して行う

まとめ
- ユーザは必ず 1 つのプライマリグループに所属し、0 個以上のセカンダリグループに属することができる
- ログイン可能なユーザは、ユーザー専用の作業領域であるホームディレクトリがある
- ユーザをグループに属させてアクセス権の設定する
- ユーザのデフォルトグループは、プライマリグループ
- セキュリティの高いシステムのサーバは、rootユーザは無効にして、特定の一般ユーザをwheelグループに属させて一時的に昇格する運用にする


コメント