[Exp2008]Unix系OSでのユーザー情報に関するファイル

概要

Unix 系の OS ではユーザー情報は以下のファイルに書き込まれています.

  • /etc/passwd
  • /etc/shadow
  • /etc/group
  • /etc/gshadow

以下ではこれらのファイルに書き込まれている内容について解説します.

/etc/passwd ファイル

/etc/passwd には以下のような内容が書き込まれています.

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:100:sync:/bin:/bin/sync
games:x:5:100:games:/usr/games:/bin/sh
man:x:6:100:man:/var/catman:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
list:x:38:38:SmartList:/var/list:/bin/sh
shosuke:x:1000:1000:Yoshi-Yuki Hayashi:/home/shosuke:/bin/bash

1 行に 1 ユーザーの情報が記述されています. 個々のユーザーの情報として, コロン (:) で区切られた 7 つのフィールドに, 次のような内容が左から順に 書き込まれています.

  1. ユーザー名

    ユーザーの login 名. これはアカウント名とも呼ばれ, 8 文字までの 英小文字を用いて表されます.

    例) shosuke

  2. パスワード

    かつて暗号化されたパスワードが書き込まれていた場所. このファイル と同名の passwd コマンドで各ユーザーがパスワードを登録すると, こ の部分に書き込まれました.

    現在はセキュリティを考慮し, パスワードの情報は, アカウントを持っ ているユーザーなら誰でも見ることの出来る passwd ファイルではなく, root のみ閲覧可能な shadow ファイルに書き込まれます.

    例) 昔:ODmNoe3rpqcWE (暗号化されている), 今:x .

  3. ユーザー ID

    ユーザーの識別番号. 0 から 65535 までの値を選ぶことが出来ま す. システムはこの数値を参照してユーザーを識別するので, 他のユー ザーと重複しないように注意します. また 0 は root の番号なので一 般ユーザーには使用しません. Linux のデフォルト (特に変更しなかっ た場合) では 1000 番以降が与えられます.

    例) 1000

  4. グループ ID

    ユーザーの所属するグループ番号. 複数のグループに属する場合は主た るグループを記述します. Linux のデフォルトでは 1000 番 (users) が与えられます. 登録方法によっては, ユーザー名と同じ名前のグルー プ名が作成されることもあります. 番号とグループ名の対応は /etc/group にリストアップされており, 新たにグループを作った場合, このファイルに追加します.

    例) 1000

  5. gecos

    コメント用フィールド. ユーザーの本名等を書いておきます.

    例) Yoshi-Yuki Hayashi

  6. ホームディレクトリ

    ユーザーのホームディレクトリを絶対パスで記述します. 慣習として login 名と同じディレクトリ名が用いられます. ホームディレクトリに 関しては後で学習します.

    例)/home/keikei

  7. ログインシェル

    ログイン時に起動されるシェル. SUN OS のデフォルトは /bin/sh . Linux では /bin/bash . シェルについては後で学習します.

    例)/bin/bash

/etc/shadow ファイル

/etc/shadow には以下のような内容が書き込まれています. (因みに, 以下の 暗号化されたパスワードは参考書から引用したものであり復号化してもメリッ トはありません. )

addie:ODmNoe3rpqcWE:10886:0:99999:7:::0
adam:kHTsizRZqOpqE:10907:0:99999:7:::0
addison:iJMp94cZHbJ26:10910:0:99999:7:::0
adon:zK1kwbbc6.IeM:10905:0:99999:7:::0
samson:fM77gWFKHu4DU:10889:0:99999:7:::
bob:LOZNf7d9Xn6Rc:10910:0:99999:7:::0
david:YTpjdEsdAMFJ2:10928:0:99999:7:::0

1 行に 1 ユーザーのパスワード情報が記述されています. 個々のユーザーの パスワード情報として, コロン (:) で区切られた 9 つのフィールドに, 次の ような内容が左から順に書き込まれています. なお, このファイルは root の 権限をなくして閲覧することはできません.

  1. ユーザー名

    ユーザーの login 名. 同じ物が /etc/passwd ファイルに記述されてい る必要があります.

    例) samson

  2. パスワード

    暗号化されたパスワードが書かれています.

    例) fM77gWFKHu4DU

  3. 最終パスワード変更日時

    1970 年 1 月 1 日からパスワード最終変更日時迄の日数です.

    例) 10889

  4. パスワード変更不能日数

    パスワード変更が出来る様になるまでの日数です.

    例) 0

  5. パスワード変更要求迄の日数

    パスワードを変更しなくても良い日数です.

    例) 99999

  6. パスワード期限満了警告日数

    パスワードが無効となるまでに, "ユーザにパスワードが無効となりか かっている"との警告を出す日数です.

    例) 7

  7. アカウント無効までの日数

    パスワードが無効となってから, アカウントが不能となり使用できなく なるまでの日数です. 上のサンプルでは設定されていません.

  8. アカウント期限満了の日付

    1970 年 1 月 1 日からアカウント使用不能となる迄の日数です. 上の サンプルでは設定されていません.

  9. 将来の使用に予約

    将来的に何か情報を追加するようシステムが変更された場合に, その新 規情報を書き込むために空けてあります. 0 を指定します.

/etc/group ファイル

/etc/group には以下のような内容が書き込まれています.

root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:lp
mail:x:8:
news:x:9:
uucp:x:10:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:
floppy:x:25:
tape:x:26:
audio:x:29:
nogroup:x:65534:
project:x:1001:keikei,sugiyama,dongury
planning:x:1002:hoge,foo,bar

/etc/passwd ファイル同様, 1 行に 1 グループの情報が記述されていま す. 個々のグループの情報として, コロン (:) で区切られた 4 つのフィール ドに, 左から順に, 「グループ名:グループのパスワード (gshadow ファイルを 使うので現在は使われていない) :グループ ID の数値:グループに属するメンバー全員のユーザー名 (個々のユーザー名はコンマで区切られる) 」の形で書かれています.

/etc/gshadow ファイル

group のパスワードが格納されるファイルで /etc/shadow と同様です.