最低限 UNIX / Linux [I]

発展. ユーザー情報に関するファイル

必修

  1. アカウント作成とログイン, ログアウトの作法
  2. UNIX の代表的なコマンド
  3. ファイルとディレクトリ

発展

  1. ユーザー情報に関するファイル
  2. ルートディレクトリにある主なディレクトリ

[4.1] ユーザー情報に関する 3 つのファイル

ユーザー情報は /etc/passwd, /etc/shadow, /etc/group の 3 つのファイルに書き込まれています. このうち passwd と group は一般ユーザでも閲覧可能ですが, shadow は root しか閲覧できません. かつては passwd に直接暗号化したパスワードが記載されていましたが, 昨今の情報技術の進歩に伴い暗号の解読(復号化)が 容易になりつつあるため, セキュリティ上の懸念から root のみが閲覧可能な shadow ファイルにまとめられるようになりました.

[4.2] /etc/passwd

まずは /etc/passwd を閲覧してみましょう.

# lv /etc/passwd

/etc/passwd には以下のような内容が書き込まれています.(カーソル上下でページ送り, q で終了)

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
keikei:x:1000:1000:Kuramoto Kiyoshi:/home/keikei:/bin/bash

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

  1. ユーザー名
    ユーザーの login 名. アカウント名とも呼ばれます.
    例)keikei

  2. パスワード
    かつて暗号化されたパスワードが書き込まれていた場所. このファイルと同名の passwd コマンドで各ユーザーがパスワードを登録すると, この部分に書き込まれました.
    現在はセキュリティを考慮し, パスワードの情報は, アカウントを持っているユーザーなら誰でも見ることの出来る passwd ファイルではなく, root のみ閲覧可能な shadow ファイルに書き込まれます.
    例)昔:ODmNoe3rpqcWE(暗号化されている), 今:x .

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

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

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

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

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

[4.3] /etc/shadow

続いて /etc/shadow を閲覧してみましょう。root 権限を持つ VTA に作業してもらいます。

# lv /etc/shadow

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

addie:$6$Utev74.c$dyH520./rf0...(中略)...pQydGHu6f01:10886:0:99999:7:::0
adam:$6$yfr59.ND$n0FRdB.GTdsC...(中略)...9.Hyr4dTr3:10907:0:99999:7:::0
addison:$6$e.H/te0$prwgyr6GYr...(中略)...5.kOC.g3llX.:10910:0:99999:7:::0
adon:$6$y.JgtEf5$lp.TH..7esCf...(中略)...7fpHYre4./:10905:0:99999:7:::0
samson:$6$DpFRkK3x$r3.856/lWY...(中略)...o9goIcODF7e.:10889:0:99999:7:::
bob:$6$KbyR5re4$tgL85.h/uHt3/...(中略).../nl.yTD4b:10910:0:99999:7:::0
david:$6$OgoWhdOf$uhBfrD./07c...(中略)...c5TG43.ZqP/V:10928:0:99999:7:::0

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

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

  2. パスワード
    暗号化されたパスワードが書かれています.
    例)$1$Utev74.c$dyH520./rf0pQydGHu6f01

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

  4. パスワード変更不能日数
    パスワード変更が出来る様になるまでの日数です.
    例)0

  5. パスワード変更要求迄の日数
    パスワードを変更しなくても良い日数です.
    例)99999

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

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

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

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

[4.4] /etc/group

最後に /etc/group を閲覧してみましょう. これは一般ユーザでも閲覧可能です.

# lv /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:
keikei:x:1000:
sugiyama:x:1005:
dongury:x:1007:

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




>> 次ページへ

最終更新日: 2012/04/02(三上 峻) Copyright © 2000-2012 inex