Product SiteDocumentation Site

8.4. ユーザとグループのデータベース

ユーザのリストは通常 /etc/passwd ファイルに保存されており、/etc/shadow ファイルには暗号化されたパスワードが保存されています。どちらのファイルもテキストファイルで、比較的単純なフォーマットで書かれており、テキストエディタを使って読んだり変更することが可能です。各ユーザはこれらのファイルにリストされ、各行はコロン (「:」) で区切られたいくつかのフィールドを含んでいます。

8.4.1. ユーザリスト、/etc/passwd

以下は /etc/passwd ファイルに含まれるフィールドのリストです。
  • ログイン名。これはたとえば rhertzog です。
  • パスワード、これは一方向性関数 (crypt) によって暗号化されたパスワードです。使われる暗号化アルゴリズムは DESMD5SHA-256SHA-512 などです。このフィールドの値が特別な値「x」だった場合、これは暗号化されたパスワードが /etc/shadow に保存されていることを意味しています。
  • uid。これは各ユーザを識別する一意的な番号です。
  • gid。これはユーザのメイングループを示す一意的な番号です (Debian はデフォルトで各ユーザに固有のグループを作成します)。
  • GECOS。通常これはユーザの氏名を含むデータフィールドです。
  • ログインディレクトリ。これはユーザが個人ファイルを保存するために割り当てられたディレクトリです (環境変数 $HOME は通常このディレクトリを指します)。
  • ログイン時に実行されるプログラム。通常これはユーザに行動の自由を与えるコマンドインタプリタ (シェル) です。/bin/false (何もせずすぐにコントロールを返すプログラム) が指定された場合、ユーザはログインできません。

8.4.2. 隠された暗号化パスワードファイル、/etc/shadow

/etc/shadow ファイルには以下のフィールドが含まれます。
  • ログイン名。
  • 暗号化されたパスワード。
  • パスワードの有効期限を管理するいくつかのフィールド。

8.4.3. 既存のアカウントやパスワードの変更

以下のコマンドはユーザデータベースの特定のフィールドに保存されている情報を変更します。すなわち passwd を使うと、一般ユーザは自分のパスワードを変更できます。つまり /etc/shadow ファイルが更新されます。さらに chfn (CHange Full Name) を使うと GECOS フィールドが変更されます。このコマンドはスーパーユーザ (root) 専用です。chsh (CHange SHell) を使うと、一般ユーザはログインシェルを変更できます。しかしながら、ここで設定できるのは /etc/shells に書かれたシェルだけです。その一方で、管理者はこの制限に縛られず、シェルにどんなプログラムを設定することも可能です。
最後に、chage (CHange AGE) コマンドを使うと、管理者はパスワードの有効期限設定を変更できます (-l user オプションで現在の設定を表示します)。passwd -e user コマンドを使うと、パスワードを強制的に失効させることが可能です。ユーザは次回のログイン時にパスワード変更を要求されます。

8.4.4. アカウントの失効

「アカウントを失効」する (ユーザを締め出す) 必要が出てくるかもしれません。これが必要になるのは、ユーザの懲戒処分、調査目的、単純に長期にわたって明らかにログインしていない場合などが考えられます。失効されたアカウントとは、ユーザがログインできないかマシンへのアクセスを獲得できないことを意味しています。アカウントは単にアクセスできない状態になっているだけで、アカウントがマシンから削除されるわけでもなければファイルおよびデータが削除されるわけでもありません。アカウントを失効するには passwd -l user (lock) を使ってください。もう一度アカウントを有効化するには同様の方法で -u オプション (unlock) を付けてください。

8.4.5. グループリスト、/etc/group

グループは /etc/group ファイルにリストされています。/etc/group ファイルは単純なテキストデータベースで、フォーマットは /etc/passwd ファイルとよく似ており、以下のフィールドを持っています。
  • グループ名。
  • パスワード (任意)。これはグループメンバーでないユーザがそのグループに参加する際に使われます (newgrp および sg コマンドを使います。補注BACK TO BASICS 複数のグループに所属する」を参照してください)。
  • gid。これはグループを識別する一意的な番号です。
  • メンバーのリスト。これはグループに所属するユーザ名のコンマ区切りリストです。
addgroup コマンドはグループを追加、delgroup コマンドはグループを削除します。groupmod コマンドは指定したグループの情報 (gid またはグループ名など) を変更します。gpasswd groupgroup で指定したグループのパスワードを変更し、一方で gpasswd -r group コマンドは group で指定したグループを削除します。