14.2. はじめに

FreeBSD システムへアクセスするには、 かならずアカウントが使われ、 また、プロセスもすべてユーザによって実行されるので、 ユーザとアカウントの管理は、重要なものです。

FreeBSD システム上のどのアカウントにも、 そのアカウントを識別するための情報がなにかしら結び付けられています。

ユーザ名

login: プロンプトに対して入力するユーザの名前です。 ユーザ名はそのシステムで一意でなければならず、 2 名のユーザに同じユーザ名をつけることはできません。 有効なユーザ名を作成するには passwd(5) に記載されているいくつもの規則があります。 アプリケーションの上位互換性を保つために、 8 文字以下の小文字からなるユーザ名が一般的です。

パスワード

それぞれのアカウントにはパスワードがあります。 パスワードは空白にもできますが、 行うべきではありません。 すべてのアカウントにはパスワードをつけるべきです。

ユーザ ID (UID)

ユーザ ID (UID) は、 システムがユーザを一意に識別するための、 伝統的には 0 から 65535[5]の間の数値です。内部的には、FreeBSD はユーザの識別に UID を使っています。 ユーザ名を指定できるコマンドは、 ユーザ名を UID に変換してから扱っています。 好ましくありませんが、同じ UID を持つ異なるユーザ名のアカウントがいくつあってもよいということになります。 FreeBSD に限っていうと、 これらのアカウントはひとりのユーザとして扱われます。

グループ ID (GID)

グループ ID (GID) は、 ユーザが属する第一グループを一意に識別するための、 伝統的には 0 から 65535[5] の間の数値です。グループは、UID ではなく、 ユーザの GID に基づいて資源へのアクセスを制御する仕組みです。 これは、ある種の設定ファイルのサイズを大幅に小さくします。 ユーザは、複数のグループに所属できます。

ログインクラス

ログインクラスはグループの仕組みを拡張したもので、 別々のユーザに対してシステムを調整する時に、 さらなる柔軟性を提供します。

パスワード変更時間

デフォルトでは、FreeBSD は定期的にパスワードを変更することをユーザに強制しません。 これをユーザごとに設定して、一部またはすべてのユーザに、 一定の時間がたったらパスワードを強制的に変更させることができます。

アカウント失効時間

デフォルトでは、FreeBSD はアカウントを失効させません。 たとえば学校で生徒のアカウントがある場合など、 限られた期間だけのアカウントを作成するなら、 そのアカウントがいつ失効するか指定できます。 有効期間が経過したら、 そのアカウントのディレクトリやファイルは残っていますが、 システムへのログインはできなくなります。

ユーザの氏名

FreeBSD ではユーザ名でアカウントを一意に識別しますが、 必ずしもユーザの本名を反映したものではありません。 この情報をアカウントに関連付けることもできます。

ホームディレクトリ

ホームディレクトリは、システム中のディレクトリへのフルパスです。 これはユーザがログインした時に作業を開始するディレクトリです。 一般的な慣習は、すべてのユーザのホームディレクトリを /home/username/usr/home/username の下に置くことです。 各ユーザは、個人のファイルやサブディレクトリを、 ユーザのホームディレクトリに保存します。

ユーザシェル

シェルは、 ユーザがシステムと対話するデフォルトの環境を提供します。 いろいろな種類のシェルがあり、 経験を積んだユーザはそれぞれ好みがあり、 それをアカウントの設定に反映できます。

アカウントには大きく分けて三種類のものがあります。それは、 スーパーユーザ (superuser)システムアカウント (system accounts)、 そしてユーザアカウント (user accounts) です。 スーパーユーザのアカウントは通常 root と呼ばれ、 無制限の特権を持つためにシステムの管理に用いられます。 また、システムアカウントはサービスの運用に用いられ、 ユーザアカウントは、 実際のユーザに割り当てられ、ログインしてシステムを利用するために使われます。

14.2.1. スーパーユーザアカウント

スーパーユーザアカウントは通常 root と呼ばれ、 システム管理を行なうために使われます。 このアカウントはメールのやりとり、システムの調査、 プログラミングといった日常的な作業を行なうために使われるべきものではありません。

その理由は、スーパーユーザが通常のユーザアカウントと異なり、 操作にまったく制限を受けないことによります。 そのためスーパーユーザアカウントで操作を間違えると、 システムに重大な影響を与えてしまう恐れがあるのです。 ユーザアカウントでは、 仮に操作を間違えてもシステムを壊してしまうようなことはできないようになっています。 したがって特権を必要としていないのであれば、 できるだけいつもユーザアカウントを利用する方が望ましいと言えるでしょう。

スーパーユーザで実行するコマンドはいつでも、 二回、三回と確認してください。 なぜならスペースが多かったり、文字が欠けていたりするだけで、 取り返しのつかないデータの破壊につながる可能性があるからです。

常にシステム管理者用にユーザアカウントを作成し、 一般的な使用においては、そのアカウントを使ってください。 これはマルチユーザモード、シングルユーザモードを問わず、 同様にあてはまります。 この章のうしろの方では、アカウントの追加と通常のユーザから スーパーユーザへと移行する手順について扱います。

14.2.2. システムアカウント

システムアカウントとは、DNS、メール、 ウェブサーバといった各種サービスを運用するために使われます。 この目的は、セキュリティを確保するためです。 もしサービスがスーパーユーザで実行されていると、 それらのサービスは (本来意図しないような) どんな動作でも可能となり、適切な制限を適用することができません。

システムアカウントの具体例として、 daemon, operator, bind, news および www といったものがあります。

nobody ユーザは通常の特権を持たないシステムユーザです。 しかし、nobody を利用するサービスが増えれば増えるほど、 それに所属するファイルやプロセスも増え、 その特権も大きくなるということを忘れないようにしてください。

14.2.3. ユーザアカウント

ユーザアカウントは、 主に現実のユーザがシステムにアクセスする手段として用いられるものです。 このアカウントは利用するユーザとシステム環境を分離します。 そのため、システムや他のユーザに危害をおよぼす危険性をなくし、また、 他に影響を与えることなくユーザ自身の環境をカスタマイズすることを可能にしています。

システムにアクセスするすべてのユーザは、 それぞれ唯一のユーザアカウントを持つべきです。 こうすることで管理者は誰が何を行なっているかがわかりますし、 他の人の設定を壊してしまったり、 他人のメールを読んでしまうようなことを避けることができます。

それぞれのユーザは快適にシステムを利用するため、 シェル、エディタ、キー設定、言語など、 各自の環境をセットアップすることができます。



[5] UIDGID には 4294967295 までの数を使えますが、 そのような ID は、ID の値に対して仮定を置いているソフトウェアで問題を起こす可能性があります。

本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。

FreeBSD に関する質問がある場合には、 ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で) 連絡してください。

本文書に関する質問については、 <doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。