Linux における ユーザ管理の仕組みを学習しよう! - LPI

2007/3/16
2007 年 3 月 16 日開催
オープンソースカンファレンス 2007 Tokyo/Spring
Linux ハンズオンセミナー
『Linux における
ユーザ管理の仕組みを学習しよう!』
日本電子専門学校
杉松秀利
申
載雄
sugimatsu@mail.pcmarks.jp
sin@jec.ac.jp
Copyright(c) : Japan Electronics College All Rights Reserved.
Linux ハンズオンセミナー 資 料
Sugimatsu Hidetoshi 16 Mar. 2007
Linux におけるユーザ管理の仕組み
•
本 日 のハンズオンセミナーでは、Linux システムではどのような仕 組 みを使 って、ユーザ管 理 を行
っているのかということについて学 習 します。
•
なお、本 資 料 は、CentOS 4.4 と Debian GNU/Linux 3.1 を使 用 して検 証 した結 果 に基 づき作 成 し
ました。
•
本 日 は、CD のみで起 動 する Linux である、knoppix を使 用 してハンズオンセミナーを行 いたいと
思 います。
準 備 : Linux の起 動
1)PC の電 源 を入 れて、CD をトレイに入 れ、リブートしてください。
2)左 下 に boot: と表 示 されたら、knoppix 3 Enter を入 力 してください。(30 秒 以 内 に入 力 しな
いとデフォルト起 動 動 作 に移 行 されますので、最 初 のkの文 字 だけでも、まず入 力 してくださ
い。)
3)ターミナルのプロンプトの最 後 の記 号 (# または $)によって、root 権 限 か一 般 ユーザか分 かり
ます。root ユーザでログインされたか確 認 してください。X-Windows が起 動 された場 合 は、一
般 ユーザでログインされていると思 いますので再 起 動 しなおしてください。
[~]#:root 権 限
[~]$:一 般 ユーザ権 限
Ⅰユーザ管 理 用 のファイルとディレクトリ
資 料 の前 半 部 分 では、Linux システムにおいて、ユーザ管 理 用 に使 用 されている主 要 なファイルとデ
ィレクトリについて学 習 します。前 半 部 分 のキーワードは、3 つのファイルと 1 個 のディレクトリです。
1. これがユーザ情 報 を管 理 するファイルとディレクトリです!
Linux システムにおいて、ユーザ情 報 がどのように管 理 されているのかを理 解 して頂 くために、本 日
のセミナーでは次 の 3 つのファイルと 1 個 のディレクトリについて学 習 することにします。
◇ ユーザ管 理 に使 用 される主 要 なファイルとディレクトリ
ファイル名 など
/etc/passwd
機能
適用
各 ユーザアカウントの様 々な情 報 が記 録 されているフ
パスワードファイル
ァイル。1 行 に 1 エントリずつ定 義 されている。
/etc/shadow
ユーザのアカウントに対 する暗 号 化 されたパスワード
暗 号 化 されたパスワード
情 報 、およびオプションとしてパスワードの有 効 期 限 の
ファイル
2
情 報 が記 されているファイル。1 行 に 1 エントリずつ定
義 されている。
/etc/group
グループにどのユーザーが所 属 しているかが定 義 され
ユーザグループファイル
ているファイル。1 行 に 1 エントリずつ定 義 されている。
/etc/skel/
ホームディレクトリを作 成 する際 にコピーされるファイル
ファイルの雛 形 が置 かれ
やディレクトリが置 かれているディレクトリ。
ているディレクトリ
注 : 上 記 のファイルのほかに、各 グループの暗 号 化 パスワードや、グループのメンバーシップなどの
情 報 が記 録 された/etc/gshadow ファイルがあります。
2. 新 しいユーザを作 成 するには
•
それでは、実 際 に新 しいユーザを作 成 して、これらのファイルがどのような役 割 を果 たしているの
かを調 べてみることにしましょう。
•
新 しいユーザは、useradd コマンドを使 って作 成 します。
(1) RedHat 系 Linux で新 しいユーザを作 成 する場 合 には、次 の構 文 を使 用 します。
# useradd 新 規 ユーザ名
(2) 新 しいユーザを作 成 する操 作 例
[root@ws101 ~]# useradd sugimatsu
(3) Debian GNU/Linux(以 下 Debian と言 います)の場 合 には、次 の構 文 を使 ってください。
# useradd -m 新 規 ユーザ名
注:
-m は、新 規 ユーザを作 成 する際 に、もしホームディレクトリが存 在 しない場 合 には、同 時 にホ
ームディレクトリを作 成 することを指 定 するオプションです。
(4) RedHat 系 の Linux では、useradd コマンドの代 わりに、adduser コマンドを使 うこともできるように
なっています。
[root@ws101 ~]# adduser 新 規 ユーザ名
注 : adduser コマンドは、useradd コマンドのシンボリックリンクなので、使 用 する際 のオプションなど
はすべて同 じです。
◎ RedHat 系 Linux と Debian では新 規 ユーザを作 成 する構 文 が違 うのは何 故 ?
•
RedHat 系 Linux では、/etc/login.defs ファイルの中 で、CREATE_HOME オプションが yes に設
定 されており、useradd コマンドの実 行 時 に、デフォルトの設 定 として、新 規 ユーザのホームディレ
クトリが作 成 されるようになっています。
•
これに対 して、Debina の/etc/login.defs ファイルでは、CREATE_HOME オプションの定 義 がない
ため、新 規 ユーザを作 成 する際 に、同 時 にそのユーザのホームディレクトリを作 成 したい場 合 に
は、-m オプションを指 定 して useradd コマンドを実 行 しなければなりません。
•
つまり、2 種 類 のディストリビューションでは、/etc/login.defs ファイルにおける CREATE_HOME オ
プションの取 り扱 いが異 なるために、新 規 ユーザを作 成 するための構 文 が違 っているのです。
3
3. /etc/passwd ファイルの内 容 はどうなっているの?
•
新 規 のユーザが作 成 されたところで、それぞれのファイルの内 容 を調 べていくことにしましょう。
•
まずは、/etc/passwd ファイルです。
(1) /etc/passwd ファイルのパーミッション
実 際 にファイルを開 く前 に、/etc/passwd ファイルのパーミッションを確 認 しておきましょう。
◇ /etc/passwd ファイルのパーミッションを確 認 する操 作
[root@ws101 ~]# ls -l /etc/passwd
-rw-r--r--
1 root root 2269
3月
9 13:13 /etc/passwd
← パーミッショ ンの表 示
◎ 全 ユーザに読 み取 り権 限 が与 えられているのは何 故 ?
•
書 き込 み権 限 は所 有 ユ ーザのみに設 定 されて いますが、すべてのユーザに読 み 取 り権 限 が 与
えられていることに注 意 しましょう。
•
このようなパーミッションの設 定 になっているのは、/etc/passwd ファイルに記 録 されている情 報
を、さまざまなプログラムが利 用 できるようにするためなのです。
(2) /etc/passwd ファイルの内 容 を表 示 してみよう
•
それでは、今 作 成 したばかりの新 規 ユーザの情 報 が、/etc/passwd ファイルの中 に、どのように
記 録 されているのかを、確 認 してみることにしましょう。
•
今 回 は、-N オプションを指 定 した less コマンドを使 って、/etc/passwd ファイルの内 容 を表 示 し
てください。
•
なお、-N は各 行 の先 頭 に行 番 号 を表 示 するために指 定 するオプションです。
① /etc/passwd ファイルを-N オプション付 きの less コマンドで表 示 する操 作
[root@ws101 ~]# less -N /etc/passwd
② /etc/passwd ファイルの表 示 例
42 dovecot:x:97:97:dovecot:/usr/libexec/dovecot:/sbin/nologin
43 postfix:x:89:89::/var/spool/postfix:/sbin/nologin
44 mailman:x:41:41:GNU Mailing List Manager:/usr/lib/mailm an:/sbin/nologin
45 mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
46 radiusd:x:95:95:radiusd user:/:/bin/false
47 sugimatsu:x:500:500::/home/sugimatsu:/bin/bash
(3) /etc/passwd ファイルの書 式
•
/etc/passwd ファイルでは、1 行 に 1 エントリずつのユーザなどの情 報 が記 録 されており、各 行 は
コロン(:)で区 切 られた 7 つのフィールドによって構 成 されています。
•
各 フィールドに格 納 されるユーザ情 報 は、次 のとおりです。
4
◇ /etc/passwd ファイルのエントリの記 述 例
sugimatsu:x:500:500::/home/sugimatsu:/bin/bash
①
②
③
④ ⑤
⑥
⑦
◇ 各 フィールドに格 納 される情 報
名称
格 納 される情 報
①
第 1 フィールド
ログイン名
②
第 2 フィールド
パスワード
③
第 3 フィールド
ユーザ ID
④
第 4 フィールド
グループ ID (プライマリグループ)
⑤
第 5 フィールド
ユーザ名 もしくはコメント
⑥
第 6 フィールド
ユーザのホームディレクトリ
⑦
第 7 フィールド
ユーザのデフォルトシェルプログラム
注 : 各 フィールドに格 納 される情 報 から、/etc/passwd ファイルは「ユーザ情 報 のデータベース」であ
る、と言 われています。
(4) 第 2 フィールドに格 納 される値
•
第 2 フィールドには、以 前 はユーザのパスワードが平 文 で格 納 されていましたが、現 在 ではパス
ワードは暗 号 化 されるようになりました。
•
そして、暗 号 化 されたパスワードは/etc/shadow ファイルへ格 納 されるようになっています。
•
このため、現 在 、第 2 フィールドに格 納 される値 は、次 の 3 つです。
◇ 第 2 フィールドに格 納 される値
値
説明
x
*
ヌル
•
パスワードが暗 号 化 され、/etc/shadow ファイルで管 理 されていることを表 します。
•
x が格 納 された passwd ファイルのことを、shadow 化 された passwd ファイルと言 います。
•
ユーザアカウントを一 時 的 に無 効 にすることを表 します。
•
*が設 定 されている間 、そのユーザはログインできなくなります。
•
ヌル(null)とは、長 さ 0 の文 字 列 のことです。
•
何 も値 が設 定 されていないため、sugimatsu::500 というように、ダブルコロン(::)で表 示 さ
れます。
•
ヌルに設 定 した場 合 には、そのユーザはパスワードの入 力 なしでログインできます。
注 : shadow 化 された/etc/passwd ファイルでは、ユーザにパスワードが設 定 されている/いないに関
係 なく、第 2 フィールドには x という値 が格 納 されています。
•
以 前 は、各 ユーザのパスワード情 報 も、このファイルに格 納 されていました。
•
しかし、たとえ暗 号 化 されているとしても、すべてのユーザが閲 覧 できるファイルに、パスワードを
格 納 しておくということは、セキュリティ対 策 上 、決 して好 ましいことではありません。
•
そこで、ユーザのパスワードに関 する情 報 は、/etc/shadow ファイルで管 理 されるようになっった
のです。
5
(5) 第 3 フィールドに格 納 される値
•
第 3 フィールドには、ユーザ ID(UID)を表 す値 が格 納 されます。
•
また、第 1 フィールドに格 納 されるログイン名 は、root、システムアカウント名 、一 般 ユーザのアカ
ウント名 に分 類 できます。
•
この第 1 フィールドに格 納 されるログイン名 の種 類 と、それぞれの種 類 のログイン名 に割 り当 てら
れるユーザ ID の値 の関 係 は、次 のように整 理 できます。
◇ ログイン名 の種 類 と割 り当 てられるユーザ ID の関 係
ログイン名 の種 類
格 納 される値
root
0
システムアカウント
1 ~ 499
一 般 ユーザのアカウント
500 ~ 60000
◎ 用 語 の説 明
アカウント(account)
Linux システム上 で、ソフトウェアなどを扱 うことのできる権 限 のことを、アカウントと言 います。アカウ
ントには、ユーザアカウントとシステムアカウントの 2 種 類 があります。なお、2 種 類 のアカウントとも、
ユーザ ID によって識 別 されるようになっています。
ユーザアカウント(user account)
ユーザが Linux システムへログインして、システムを操 作 できる権 限 のことを、ユーザアカウントと言
います。ユーザアカウントには、パスワードが設 定 されるとともに、それぞれのユーザのログイン用 の
ディレクトリとして、ホームディレクトリが作 成 されます。通 常 の場 合 、単 に「アカウント」と言 う場 合 に
は、ユーザアカウントを指 します。
システムアカウント(system account)
Linux システムが、特 定 のアプリケーションを実 行 するために利 用 する、具 体 的 なユーザの存 在 しな
いアカウントのことを、システムアカウントと言 います。システムアカウントには、特 定 のユーザが存 在
しないため、パスワードを使 って Linux システムへログインする権 限 はなく、ホームディレクトリも作 成
されません。
① 一 般 ユーザのユーザ ID に割 り当 てられる値 の範 囲 について
•
一 般 ユ ー ザ に 割 り 当 て ら れ る ユ ー ザ ID の 開 始 値 と 終 了 値 は 、 /etc/login.defs フ ァ イ ル の
UID_MIN パラメータと UID_MAX パラメータの設 定 値 によって決 定 します。
•
RedHat 系 の Linux では、UID_MIN パラメータには 500、UID_MAX パラメータには 60000 という値
が設 定 されているため、一 般 ユーザに割 り当 てられるユーザ ID の値 の範 囲 が、500~60000 とい
うことになっているのです。
② Debian の場 合 は 1000~60000 です
•
Debian の場 合 には、/etc/login.defs ファイルの UID_MIN パラメータには 1000、UID_MAX パラメ
6
ータには 60000 という値 が設 定 されています。
•
このため、一 般 ユーザに割 り当 てられるユーザ ID の値 の範 囲 は、1000~60000 になります。
(6) 第 6 フィールドに格 納 される値
•
第 6 フィールドには、ユーザのホームディレクトリ名 が、フルパス付 きで格 納 されます。
•
useradd コマンドを実 行 する際 に、特 別 にホームディレクトリを作 成 するパスを指 定 しなければ、
デフォルトの設 定 では、/home/ディレクトリ下 に新 規 のユーザ名 と同 じ名 称 のディレクトリが、そ
のユーザのホームディレクトリとして、自 動 的 に作 成 されるようになっています。
•
こ の よ う な 処 理 が 自 動 的 に 行 わ れ る の は 、 useradd コ マ ン ド の デ フ ォ ル ト の 設 定 値 を 定 義 し た
/etc/default/useradd ファイルの中 で、「HOME=/home」と指 定 されているためです。
(7) 第 7 フィールドに格 納 される値
•
第 7 フィールドには、ユーザのデフォルトシェルプログラム名 が、フルパス付 きで格 納 されます。
•
useradd コマンドを実 行 する際 に、特 別 な指 定 をしなければ、自 動 的 に「/bin/bash」が格 納 され
ます。
•
こ の よ う な 処 理 が 自 動 的 に 行 わ れ る の は 、 useradd コ マ ン ド の デ フ ォ ル ト の 設 定 値 を 定 義 し た
/etc/default/useradd ファイルの中 で、「SHELL=/bin/bash」と指 定 されているためです。
4. /etc/shadow ファイルの中 を覗 いてみよう
•
続 いて、パスワードが暗 号 化 された Linux システムでは、/etc/passwd ファイルと 1 セットのファイ
ルとなる/etc/shadow ファイルの内 容 について、調 べることにしましょう。
•
Linux システムでは、暗 号 化 されたパスワードは、/etc/shadow ファイルに保 存 されます。
(1) /etc/shadow ファイルのパーミッション
/etc/passwd ファイルのときと同 様 に、ファイルを開 く前 に/etc/shadow ファイルのパーミッションを確
認 しておきましょう。
◇ /etc/shadow ファイルのパーミッションを確 認 する操 作
[root@ws101 ~]# ls -l /etc/shadow
-r-------•
1 root root 1342
3 月 10 04:57 /etc/shadow
← パーミッションの表 示
ファイルの所 有 者 である root だけに、読 み込 み権 限 のみが許 可 されているファイルであることが
わかります。
•
つまり、Linux システムによってのみ書 き込 み可 能 であり、root 権 限 のみが閲 覧 可 能 なファイル
であるということになります。
•
なお、他 のファイルと同 様 に、root 権 限 によってパーミッションを変 更 し、root 権 限 に書 き込 み権
限 を与 えることは可 能 です。
(2) /etc/shadow ファイルの内 容 を表 示 してみよう
•
それでは、/etc/shadow ファイルの内 容 を、確 認 してみることにしましょう。
•
今 回 も、-N オプションを指 定 した less コマンドを使 って、/etc/shadow ファイルの内 容 を表 示 して
7
ください。
① /etc/shadow ファイルを-N オプション付 きの less コマンドで表 示 する操 作
[root@ws101 ~]# less -N /etc/shadow
② /etc/shadow ファイルの表 示 例
42 dovecot:!!:13581:0:99999:7:::
43 postfix:!!:13581:0:99999:7:::
44 mailman:!!:13581:0:99999:7:::
45 mysql:!!:13581:0:99999:7:::
46 radiusd:!!:13581:0:99999:7:::
47 sugimatsu:!!:13581:0:99999:7:::
(3) /etc/shadow ファイルの書 式
•
/etc/shadow ファイルでは、1 行 に 1 エントリずつのユーザアカウントに対 する暗 号 化 されたパス
ワード情 報 が格 納 されています。
•
また 、 暗 号 化 され たパ スワード 情 報 のほかに 、オプショ ン としてパ ス ワードの 有 効 期 限 に 関 す る
情 報 なども格 納 されています。
•
このファイルも、各 行 の内 容 はコロン(:)区 切 られており、9 つのフィールドによって構 成 されてい
ます。
•
各 フィールドに格 納 される情 報 は、次 のとおりです。
◇ /etc/shadow ファイルのエントリの記 述 例
sugimatsu:!!:13581:0:99999:7:::
①
②
③
④
⑤
⑥⑦⑧⑨
◇ 各 フィールドに格 納 される情 報
名称
格 納 される情 報
①
第 1 フィールド
ログイン名
②
第 2 フィールド
MD5 により暗 号 化 されたパスワード
③
第 3 フィールド
1970 年 1 月 1 日 から起 算 して最 後 にパスワードが変 更 された日 迄 の日 数
④
第 4 フィールド
パスワードが変 更 可 能 となるまでの日 数 (この期 間 を越 えないと、パスワード
は変 更 できない)
⑤
第 5 フィールド
パ ス ワ ード を 変 更 し な く て は な らな く な る 日 ま で の 日 数 ( こ の 期 間 を 越 え た ら
パスワードの変 更 が必 要 )
⑥
第 6 フィールド
パスワード有 効 期 限 が来 ることをユーザに警 告 する日 数
⑦
第 7 フィールド
パスワード有 効 期 限 が過 ぎてから、アカウントが使 用 不 能 になるまでの日 数
⑧
第 8 フィールド
1970 年 1 月 1 日 からアカウントが使 用 不 能 になる日 までの日 数
⑨
第 9 フィールド
予 約 済 みのフィールド
注 : 各 フィールドに格 納 される情 報 から、/etc/shadow ファイルは「パスワード情 報 のデータベース」
8
である、と言 われています。
(4) 第 2 フィールドに格 納 される値
第 2 フィールドには、MD5 というアルゴリズムに基 づき暗 号 化 されたパスワードが格 納 されますが、次
の 3 つの値 も格 納 されるようになっています。
◇ 第 2 フィールドに格 納 される値
値
説明
!!
第 1 フィールドのユーザに、パスワードが設 定 されていないことを表 します。
*
ログインできないアカウントであることを表 します。
ヌル
ユーザがパスワードの入 力 なしでログインできることを表 します。
注 : Unix では、NP と*LK*で表 される値 に相 当 するものと推 測 されますが、実 際 に/etc/shadow ファ
イルに格 納 されている内 容 を分 析 してみると、Linux の場 合 にはこの 2 つの値 が厳 密 に使 い分 けら
れていません。
(5) その他 のフィールドに格 納 される値 について
•
第 3 フィールドの 1970 年 1 月 1 日 から起 算 して最 後 にパスワードが変 更 された日 迄 の日 数 に
ついては、自 動 計 算 された値 が格 納 されます。
•
第 4 フィールドのパスワードが変 更 可 能 となるまでの日 数 については、/etc/login.defs ファイル
の PASS_MIN_DAYS パラメータに設 定 されている値 が格 納 されます。デフォルトでは、0 という値
が格 納 されますが、これはいつでも変 更 が可 能 であることを意 味 します。
•
第 5 フィールドのパスワードを変 更 しなくてはならなくなる日 までの日 数 については、
/etc/login.defs ファイルの PASS_MAX_DAYS パラメータに設 定 されている値 が格 納 されます。デ
フォルトでは、99999 という値 が格 納 されますが、これは有 効 期 限 がないことを意 味 します。
•
第 6 フィールドのパスワード有 効 期 限 が来 ることをユーザに警 告 する日 数 については、
/etc/login.defs ファイルの PASS_WARN_AGE パラメータに設 定 されている値 が格 納 されます。デ
フォルトでは、7 という値 が格 納 されますので、7 日 前 から警 告 を発 するという設 定 になります。
5. /etc/group ファイルも解 剖 しよう
•
今 回 のハンズオンセミナーで取 り上 げるユーザ情 報 を管 理 するファイルの最 後 は、/etc/group フ
ァイルです。
•
/etc/group ファイルは、グループにどのユーザが所 属 しているのかを定 義 するファイルです。
(1) /etc/group ファイルのパーミッション
例 によって、まず最 初 に/etc/group ファイルのパーミッションを確 認 しておきましょう。
◇ /etc/group ファイルのパーミッションを確 認 する操 作
[root@ws101 ~]# ls -l /etc/group
-rw-r--r--
1 root root 763
3 月 10 04:57 /etc/group
9
← パーミッションの 表 示
◎ 全 ユーザに読 み取 り権 限 が与 えられている
•
/etc/passwd ファイルとまったく同 じパーミッションが設 定 されていますね。
•
書 き込 み権 限 は所 有 ユーザにしか設 定 されていませんが、すべてのユーザに読 み取 り権 限 が与
えられています。
•
/etc/passwd ファイルと同 様 に、記 録 されている情 報 を、さまざまなプログラムが利 用 できるよう
にするために、このようなパーミッションの設 定 になっているのです。
(2) /etc/group ファイルの内 容 を確 認 してみよう
•
/etc/group ファイルの内 容 を、確 認 してみましょう。
•
今 回 は、vi を使 って/etc/group ファイルを開 くことにします。
◇ /etc/group ファイルを vi で開 く操 作
[root@ws101 ~]# vi /etc/group
◎ vi で行 番 号 を表 示 するには
•
/etc/goup ファイルが開 いたら、行 番 号 を表 示 することにしましょう。
•
vi は 、 起 動 直 後 は コ マ ン ド モ ー ド に な っ て い る の で 、 キ ー ボ ー ド か ら 「 :set nu 」 と 入 力 し た 後 に
Enter キーを押 してください。これで、行 番 号 が表 示 されます。
◇ /etc/group ファイルの表 示 例
51 postdrop:x:90:
52 postfix:x:89:
53 mailman:x:41:
54 mysql:x:27:
55 radiusd:x:95:
56 sugimatsu:x:500:
◎ vi を終 了 させるには
•
/etc/goup ファイルの内 容 の確 認 が終 わったら、vi を閉 じてください。
•
vi を終 了 させる場 合 には、キーボードから「:q」と入 力 した後 に Enter キーを押 します。
(3) /etc/group ファイルの書 式
•
/etc/group ファイルも、1 行 に 1 エントリずつの定 義 が記 述 されています。
•
各 行 はコロン(:)で区 切 られた 4 つのフィールドによって構 成 されていおり、次 のような書 式 で記
述 されています。
◇ /etc/group ファイルの書 式
グループ名 :パスワード:グループ id:ユーザリスト
10
◇ 各 フィールドに格 納 される情 報
フィールド
格 納 される情 報
第 1 フィールド
グループの名 前
第 2 フィールド
パスワード → 実 際 には、/etc/passwd ファイルと同 様 に x が格 納 されている
第 3 フィールド
グループ ID の数 値
第 4 フィールド
グループのメンバー全 員 のユーザ名 。それぞれのユーザ名 は、コンマ( ,)で区 切 ら
れている。
注 : 今 回 のセミナーでは取 り扱 いませんが、暗 号 化 されたパスワードは、/etc/gshadow ファイルに
格 納 されています。
(4) 第 3 フィールドに格 納 される値
•
第 3 フィールドには、グループ ID(GID)を表 す値 が格 納 されます。
•
また、第 1 フィールドに格 納 されるグループ名 は、root、システムアカウントのグループ名 、一 般 ユ
ーザアカウントのグループ名 に分 類 できます。
•
この第 1 フィールドに格 納 されるグループ名 の種 類 と、それぞれの種 類 のグループ名 に割 り当 て
られるグループ ID の値 の関 係 は、次 のようになっています。
◇ グループ名 の種 類 と割 り当 てられるグループ ID の関 係
ログイン名 の種 類
格 納 される値
root
0
システムアカウントのグループ
1 ~ 499
一 般 ユーザアカウントのグループ
500 ~ 60000
① 一 般 ユーザのグループ ID に割 り当 てられる値 の範 囲 について
•
一 般 ユーザのグループに割 り当 てられるグループ ID の開 始 値 と終 了 値 は、/etc/login.defs ファ
イルの GID_MIN パラメータと GID_MAX パラメータの設 定 値 によって決 定 します。
•
RedHat 系 の Linux では、GID_MIN パラメータには 500、GID_MAX パラメータには 60000 という値
が設 定 されているため、一 般 ユーザのグループに割 り当 てられるグループ ID の値 の範 囲 は、500
~60000 ということになります。
② Debian の場 合 は 100~60000 です
•
Debian の場 合 には、/etc/login.defs ファイルの GID_MIN パラメータには 100、GID_MAX パラメ
ータには 60000 という値 が設 定 されています。
•
このため、一 般 ユーザのグループに割 り当 てられるグループ ID の値 の範 囲 は、100~60000 にな
ります。
6. 作 成 したユーザアカウントでログインしてみよう
•
みなさんが、先 ほど作 成 したユーザには、まだパスワードが設 定 されていません。
•
この状 態 で、2 つのテストをしてみることにします。
•
1 番 目 は、新 規 ユーザのパスワードが設 定 されていないままの状 態 で、ログインできるかどうかを
確 認 するテストです。
11
•
そして、2 番 目 のテストとして、/etc/passwd ファイルを編 集 して、新 規 ユーザに関 する定 義 の第
2 フィールドの値 を x からヌルへ変 更 した上 で、もう一 度 ログインできるかどうかを確 認 します。
(1) パスワードを設 定 しない状 態 でログインする
それでは、1 番 目 のテストを、次 の手 順 で行 ってください。
① Alt + F2 キーを押 して、新 しいコンソールを開 く。
② ログイン名 として、新 しいユーザ名 を入 力 して Enter キーを押 す。
③ Password:と表 示 され、パスワードの入 力 待 ち状 態 になるので、何 も入 力 せずに Enter キーを押
す。
④ 再 度 、login:と表 示 され、ログイン名 の入 力 待 ちになることを確 認 する。
⑤ Alt + F1 キーを押 して、root 権 限 でログインしているコンソールに戻 る。
当 然 のことではありますが、上 記 の操 作 によって、パスワードを設 定 しない場 合 、デフォルトの
/etc/passwd ファイルの定 義 のままでは、ログインできないことが確 認 できました。
(2) /etc/passwd ファイルを編 集 した後 にログインする
次 に、/etc/passwd ファイル内 の新 規 ユーザに関 する定 義 の第 2 フィールドの値 を、x からヌルへ変
更 した後 に、ログインできるかどうかを確 認 するテストを、次 の手 順 で行 ってください。
① /etc/passwd ファイルのバックアップファイルを作 成 する。
[root@ws101 ~]# cp /etc/passwd /etc/passwd.org
② vipw コマンドを実 行 して、/etc/passwd ファイルを開 く。
[root@ws101 ~]# vipw
③ i キーを押 して、編 集 モードに切 り替 える。
④ 最 終 行 に定 義 されている新 規 ユーザの第 2 フィールドの値 x を削 除 する。
⑤ Esc キーを押 して、コマンドモードに切 り替 える。
⑥ :wq または :x と入 力 して Enter キーを押 し、編 集 した内 容 を保 存 した上 で、vi を終 了 させる。
⑦ /etc/shadow ファイルの内 容 も、同 様 に編 集 するかどうかの確 認 メッセージが表 示 されるので、
n キーを入 力 して Enter キーを押 し、編 集 作 業 を終 了 する。
◇ 日 本 語 モードで表 示 している場 合 のメッセージの表 示
このシステムではシャドウパスワードが使 われています。
今 すぐ /etc/shadow を編 集 しますか [y/n]? n
◇ 英 語 モードで表 示 している場 合 のメッセージの表 示
You are using shadow passwords on this system.
Would you like to edit /etc/shadow now [y/n]? n
⑧ Alt + F2 キーを押 して、新 しいコンソールを開 く。
⑨ ログイン名 として、新 しいユーザ名 を入 力 して Enter キーを押 す。
⑩ パスワードを入 力 せずに、ログインできたことを確 認 する。
⑪ logout または exit と入 力 し、Enter キーを押 して、ログアウトする。
⑫ Alt + F1 キーを押 して、root 権 限 でログインしているコンソールに戻 る。
12
上 記 の操 作 によって、/etc/passwd ファイル内 のユーザに関 する定 義 の第 2 フィールドの値 を、x か
らヌルへ変 更 すると、そのユーザはパスワードを入 力 せずに、ログインできることが確 認 できました。
(3) /etc/passwd ファイルの定 義 を元 に戻 す
それでは、テスト用 に変 更 した/etc/passwd ファイル内 の定 義 を元 の記 述 に戻 して、このテストを終
了 します。
① vipw コマンドを実 行 して、/etc/passwd ファイルを開 く。
[root@ws101 ~]# vipw
② i キーを押 して、編 集 モードに切 り替 える。
③ 最 終 行 に定 義 されている新 規 ユーザの第 2 フィールドの値 として、x を挿 入 する。
④ Esc キーを押 して、コマンドモードに切 り替 える。
⑤ :wq または :x と入 力 して Enter キーを押 し、編 集 した内 容 を保 存 した上 で、vi を終 了 させる。
⑥ /etc/shadow ファイルの内 容 も、同 様 に編 集 するかどうかの確 認 メッセージが表 示 されるので、
n キーを入 力 して Enter キーを押 し、編 集 作 業 を終 了 する。
◇ 日 本 語 モードで表 示 している場 合 のメッセージの表 示
このシステムではシャドウパスワードが使 われています。
今 すぐ /etc/shadow を編 集 しますか [y/n]? n
◇ 英 語 モードで表 示 している場 合 の場 合 のメッセージの表 示
You are using shadow passwords on this system.
Would you like to edit /etc/shadow now [y/n]? n
(4) Debian で vipw コマンドを実 行 した場 合
•
Debian で vipw コマンドを実 行 した場 合 、編 集 した後 に:wq または :x と入 力 して Enter キーを押
し、編 集 した内 容 を保 存 した上 で vi を終 了 させたときには、/etc/shadow ファイルの内 容 も同 様
に編 集 するかどうかの確 認 メッセージは表 示 されず、そのまま vi が終 了 します。
•
トラブルが発 生 して、確 認 メッセージが表 示 されないというわけではないことを、覚 えておいてくだ
さい。
7. 新 しいユーザのパスワードを設 定 するには
•
新 規 ユーザにパスワードを設 定 する場 合 には、passwd コマンドを使 用 します。
•
パスワードを設 定 /変 更 する構 文 は、次 のとおりです。
◇ パスワードを設 定 /変 更 する構 文
# passwd ユーザ名
(1) 新 規 ユーザのパスワードを設 定 する
それでは、新 規 ユーザのパスワードを設 定 する操 作 を実 行 してください。
◇ 新 規 ユーザのパスワードを設 定 する操 作 例
[root@ws101 ~]# passwd sugimatsu
← パスワードを設 定 するステートメントの実 行
13
Changing password for user sugimatsu.
New UNIX password:
← 設 定 するパスワードの入 力 (入 力 した文 字 列 は非 表 示 )
Retype new UNIX password:
← 設 定 するパスワードの再 入 力 (入 力 した文 字 列 は非 表 示 )
passwd: all authentication tokens updated successfully.
← 設 定 成 功 のメッセージ
[root@ws101 ~]#
(2) パスワード設 定 後 のファイルの内 容 の確 認
新 規 ユーザのパスワードを設 定 したことによって、/etc/passwd ファイルと/etc/shadow ファイルの内
容 が、どのように変 更 されたのかを確 認 しておきましょう。
① /etc/passwd ファイルの確 認
tail コマンドを使 って、パスワード設 定 後 の/etc/passwd ファイルの内 容 を確 認 してください。
◇ tail コマンドによる/etc/passwd ファイルの表 示 例 (パスワード設 定 後 )
[root@ws101 ~]# tail /etc/passwd
named:x:25:25:Named:/var/named:/sbin/nologin
canna:x:39:39:Canna Service User:/var/lib/canna:/sbin/nologin
wnn:x:49:49:Wnn Input Server:/var/lib/wnn:/sbin/nologin
cyrus:x:76:12:Cyrus IMAP Server:/var/lib/imap:/bin/bash
dovecot:x:97:97:dovecot:/usr/libexec/dovecot:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
mailman:x:41:41:GNU Mailing List Manager:/usr/lib/mailman:/sbin/nologin
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
radiusd:x:95:95:radiusd user:/:/bin/false
sugimatsu:x:500:500::/home/sugimatsu:/bin/bash
[root@ws101 ~]#
◇ パスワード設 定 前 の/etc/passwd ファイルの新 規 ユーザのエントリの定 義 例
sugimatsu:x:500:500::/home/sugimatsu:/bin/bash
/etc/passwd ファイルの定 義 は、パスワードを設 定 しても変 更 されないことを、確 認 してください。
② /etc/shadow ファイルの確 認
パイプライン機 能 を使 って、cat コマンドと grep コマンドを組 み合 わせて使 用 し、パスワード設 定 後 の
/etc/shadow ファイルの内 容 を確 認 してください。
◇ cat コマンドと grep コマンドによる/etc/shadow ファイルの表 示 例 (パスワード設 定 後 )
[root@ws101 ~]# cat /etc/shadow | grep sugimatsu
sugimatsu:$1$4etJPDCP$h3BFfd7uCRsoKeCHE70lb/:13583:0:99999:7:::
[root@ws101 ~]#
14
◇ パスワード設 定 前 の/etc/shadow ファイルの新 規 ユーザのエントリの定 義 例
sugimatsu:!!:13581:0:99999:7:::
/etc/shadow ファイル内 の新 規 ユーザのエントリの第 2 フィールドの値 が、!!から暗 号 化 されたパスワ
ードの値 に変 更 されていることを、確 認 してください。
8. ホームディレクトリを確 認 します
•
新 規 に作 成 したユーザ のホームデ ィレクトリは、自 動 的 に /home/ディレクトリ下 に 、新 規 ユー ザ
名 と同 じ名 称 で作 成 されます。
•
/etc/passwd ファイルの内 容 を調 べた際 に説 明 したように、このような処 理 が自 動 的 に行 われる
のは、useradd コマンドのデフォルトの設 定 値 を定 義 した/etc/default/useradd ファイルの中 で、
「HOME=/home」と設 定 されているからです。
•
そして、/etc/default/useradd ファイルに定 義 されている「SKEL=/etc/skel」という設 定 によって、
/home/ディレクトリ下 に作 成 された新 規 ユーザ名 と同 じ名 称 のディレクトリに、/etc/skel/ディレ
クトリ下 に置 かれているファイルとディレクトリがコピーされます。
•
このようにして、ホームディレクトリが自 動 生 成 されるのです。
•
なお、skel というディレクトリ名 は、骨 格 、骨 組 、必 要 最 小 限 のものという意 味 を持 つ skeleton(ス
ケルトン)という用 語 に由 来 する名 称 です。
(1) ホームディレクトリ下 のファイルとディレクトリを確 認 する
それでは、次 の操 作 によって、新 規 に作 成 したユーザのホームディレクトリについて、確 認 してみるこ
とにしましょう。操 作 手 順 は、次 のとおりです。
① Alt + F2 キーを押 して、新 しいコンソールを開 く。
② ログイン名 として、新 しいユーザ名 を入 力 して Enter キーを押 す。
③ Password: と 表 示 さ れ 、 パ ス ワ ー ド の 入 力 が 促 さ れ る の で 、 先 ほ ど 設 定 し た パ ス ワ ー ド を 入
力 して Enter キーを押 す。
④ ログインに成 功 したら、ホームディレクトリ下 のファイルとディレクトリを確 認 するために、次 の
ステートメントを実 行 する。
◇ ls コマンドによるホームディレクトリ下 のファイルとディレクトリの表 示 例
[sugimatsu@ws101 ~]$ ls -la
合 計 52
drwx-----drwxr-xr-x
-rw-------
3 sugimatsu sugimatsu 4096
3 root
root
4096
1 sugimatsu sugimatsu
15
3 月 10 22:59 .
3 月 10 04:57 ..
3 月 12 04:40 .bash_history
-rw-r--r--
1 sugimatsu sugimatsu
24
3 月 10 04:57 .bash_logout
-rw-r--r--
1 sugimatsu sugimatsu
191
3 月 10 04:57 .bash_profile
-rw-r--r--
1 sugimatsu sugimatsu
124
3 月 10 04:57 .bashrc
-rw-r--r--
1 sugimatsu sugimatsu 5619
3 月 10 04:57 .canna
-rw-r--r--
1 sugimatsu sugimatsu
383
3 月 10 04:57 .emacs
-rw-r--r--
1 sugimatsu sugimatsu
120
3 月 10 04:57 .gtkrc
15
drwxr-xr-x
3 sugimatsu sugimatsu 4096
-rw-r--r--
1 sugimatsu sugimatsu
3 月 10 04:57 .kde
658
3 月 10 04:57 .zshrc
[sugimatsu@ws101 ~]$
以 上 の操 作 によって、ログインしたホームディレクトリ(ログインディレクトリ)下 のファイル名 とディレク
トリ名 を確 認 することができました。
(2) /etc/skel/ディレクトリ下 のファイルとディレクトリを確 認 する
•
続 いて、ホームディレクトリのコピー元 (雛 形 )である/etc/skel/ディレクトリ下 のファイルとディレク
トリについて、確 認 することにします。
•
新 規 ユーザのアカウントでログインしたコンソール画 面 で、次 のステートメントを実 行 してください。
◇ /etc/skel/ディレクトリ下 のファイルとディレクトリの表 示 例
[sugimatsu@ws101 ~]$
ls -la /etc/skel/
合 計 92
drwxr-xr-x
drwxr-xr-x
3 root root
4096
96 root root 12288
3月
9 13:01 .
3 月 12 06:04 ..
-rw-r--r--
1 root root
24
8 月 13
2006 .bash_logout
-rw-r--r--
1 root root
191
8 月 13
2006 .bash_profile
-rw-r--r--
1 root root
124
8 月 13
2006 .bashrc
-rw-r--r--
1 root root
5619
2 月 22
2005 .canna
-rw-r--r--
1 root root
383
8 月 13
2006 .emacs
-rw-r--r--
1 root root
120
8 月 13
2006 .gtkrc
drwxr-xr-x
3 root root
4096
-rw-r--r--
1 root root
658
3月
9 12:46 .kde
8 月 22
2005 .zshrc
[sugimatsu@ws101 ~]$
(3) 新 規 ユーザのホームディレクトリと/etc/skel/ディレクトリの比 較
•
上 記 の(1)と(2)の実 行 結 果 を、比 較 してみてください。
•
2 つのディレクトリには、ホームディレクトリ下 の.bash_history ファイルを除 き、まったく同 じファイル
とディレクトリが置 かれていることが確 認 でき、/etc/skel/ディレクトリ下 のファイルとディレクトリが、
ホームディレクトリにコピーされていることが分 かります。
•
なお、ホームディレクトリ下 の.bash_history ファイルは、bash シェルの使 用 履 歴 が保 存 されている
ファイルであり、自 動 的 に生 成 されるファイルであるため、/etc/skel/ディレクトリ下 には置 かれて
いないのです。
9. ユーザ ID とグループ ID の機 能 を知 るために
•
こ れ ま で に 学 習 し て き た よ う に 、 ユ ー ザ 名 ( ロ グ イ ン 名 ) と ユ ー ザ ID と の 関 連 付 け は 、
/etc/passwd ファイルで定 義 されています。
•
Linux システムの内 部 では、ユーザの識 別 はユーザ ID の番 号 を使 って、そしてグループの識 別
はグループ ID によって行 われています。
16
•
そして、表 示 等 を行 う場 合 には、/etc/passwd ファイルを参 照 して、ユーザ ID をユーザ名 に変 換
し、/etc/group ファイルを参 照 して、グループ ID をグループ名 に変 換 して出 力 しているのです。
•
そこで、このような仕 組 みを、一 瞬 にしてみなさんに理 解 して頂 けそうなテストをしてみたいと思 い
ます。
•
ハンズオンセミナーだからこそ許 されるテストですので、皆 さんはご自 宅 、学 校 、職 場 などでは絶
対 に行 わないでくださいね。それでは、禁 断 の実 験 を開 始 することにしましょう。
(1) /etc/passwd ファイルから新 規 ユーザのエントリ行 を削 除 する
•
最 初 のテストは、/etc/passwd ファイルから新 規 ユーザのエントリ行 を削 除 したら、新 規 ユーザの
ディレクトリやファイルの所 有 権 限 が、どのように表 示 されのかを確 認 する実 験 です。
•
操 作 手 順 は、次 のとおりです。
① 新 規 ユーザでログインしているコンソールで、logout または exit と入 力 して Enter キーを押 し、
ログアウトする。
② Alt + F1 キーを押 して、root 権 限 でログインしているコンソールに戻 る。
③ 次 のステートメントを実 行 して、/etc/passwd ファイルのバックアップファイルを作 成 する。
[root@ws101 ~]# cp /etc/passwd /etc/passwd.org
④ vi で/etc/passwd ファイルを開 く。
⑤ 新 規 ユーザのエントリ行 にカーソルを合 わせて、キーボードの D キーを 2 回 押 して、この行 を削 除
する。
⑥ :wq または :x と入 力 して Enter キーを押 し、編 集 した内 容 を保 存 した上 で、vi を終 了 させる。
⑦ ls -la コマンドを実 行 して、ホームディレクトリ下 のファイルとディレクトリの一 覧 を表 示 する。
◇ ls コマンドの実 行 結 果 例
[root@ws101 ~]# ls -la /home/sugimatsu/
合 計 52
drwx------
3
500 sugimatsu 4096
drwxr-xr-x
3
root root
4096
-rw-------
1
500 sugimatsu
108
3 月 10 22:59 .
3 月 10 04:57 ..
3 月 12 08:30 .bash_history
-rw-r--r--
1
500 sugimatsu
24
3 月 10 04:57 .bash_logout
-rw-r--r--
1
500 sugimatsu
191
3 月 10 04:57 .bash_profile
-rw-r--r--
1
500 sugimatsu
124
3 月 10 04:57 .bashrc
-rw-r--r--
1
500 sugimatsu 5619
3 月 10 04:57 .canna
-rw-r--r--
1
500 sugimatsu
383
3 月 10 04:57 .emacs
-rw-r--r--
1
500 sugimatsu
120
3 月 10 04:57 .gtkrc
drwxr-xr-x
3
500 sugimatsu 4096
-rw-r--r--
1
500 sugimatsu
658
3 月 10 04:57 .kde
3 月 10 04:57 .zshrc
[root@ws101 ~]#
•
上 記 の実 行 結 果 例 で、ファイルとディレクトリの所 有 者 の部 分 が、ユーザ名 ではなくユーザ ID の
番 号 で表 示 されていることに、注 目 してください。
•
表 示 上 のこの変 化 は、/etc/passwd ファイルの新 規 ユーザのエントリ行 を削 除 したために、ユー
17
ザ ID をユーザ名 に変 換 できなくなったために起 こったことなのです。
(2) /etc/group ファイルから新 規 ユーザのグループに関 するエントリ行 を削 除 する
•
続 いて行 うテストは、/etc/group ファイルから新 規 ユーザのグループに関 するエントリ行 を削 除 し
たら、新 規 ユーザのディレクトリやファイルの所 有 権 限 が、どのように表 示 されのかを確 認 する実
験 です。
•
操 作 手 順 は、次 のとおりです。
① 次 のステートメントを実 行 して、/etc/group ファイルのバックアップファイルを作 成 する。
[root@ws101 ~]# cp /etc/group /etc/group.org
② vi で/etc/group ファイルを開 く。
③ 新 規 ユーザに関 するグループのエントリ行 にカーソルを合 わせて、キーボードの D キーを 2 回 押 し
て、この行 を削 除 する。
④ :wq または :x と入 力 して Enter キーを押 し、編 集 した内 容 を保 存 した上 で、vi を終 了 させる。
⑤ ls -la コマンドを実 行 して、ホームディレクトリ下 のファイルとディレクトリの一 覧 を表 示 する。
◇ ls コマンドの実 行 結 果 例
[root@ws101 ~]# ls -la /home/sugimatsu/
合 計 52
drwx------
3
500
500 4096
3 月 10 22:59 .
drwxr-xr-x
3
root root 4096
3 月 10 04:57 ..
-rw-------
1
500
3 月 12 08:30 .bash_history
500
108
-rw-r--r--
1
500
500
24
3 月 10 04:57 .bash_logout
-rw-r--r--
1
500
500
191
3 月 10 04:57 .bash_profile
-rw-r--r--
1
500
500
124
3 月 10 04:57 .bashrc
-rw-r--r--
1
500
500 5619
3 月 10 04:57 .canna
-rw-r--r--
1
500
500
383
3 月 10 04:57 .emacs
-rw-r--r--
1
500
500
120
3 月 10 04:57 .gtkrc
drwxr-xr-x
3
500
500 4096
-rw-r--r--
1
500
500
658
3 月 10 04:57 .kde
3 月 10 04:57 .zshrc
[root@ws101 ~]#
•
いかがですか?、ファイルとディレクトリの所 有 者 のユーザ ID に続 いて、今 度 は所 有 者 が所 属 す
るグループの部 分 も、グループ ID の番 号 で表 示 されるようになったことが、確 認 できたと思 いま
す。
•
この表 示 上 のこの変 化 も、/etc/group ファイルの新 規 ユーザに関 するグループのエントリ行 を削
除 したために、グループ ID をグループ名 に変 換 できなくなったのが原 因 です。
•
少 々危 険 なテストでしたが、ファイルシステム等 はユーザ ID とグループ ID で管 理 されており、そ
れらの ID 番 号 は/etc/passwd ファイルと/etc/group ファイルによって、ユーザ名 とグループ名 に
変 換 されていることが、体 験 的 に理 解 して頂 けたのではないかと思 います。
18
10. ユーザを削 除 するには
•
それでは、資 料 の前 半 部 分 の最 後 の操 作 として、ユーザを削 除 する方 法 と、ユーザを削 除 する
ことによって、ユーザ情 報 を管 理 する 3 つのファイルの内 容 がどのように変 化 するのかを確 認 した
いと思 います。
•
/etc/passwd ファイルと/etc/group ファイルを、それぞれのバックアップファイルを使 って元 の内
容 のファイルに戻 した上 で、新 規 に作 成 したユーザを削 除 するという手 順 で、進 めていくことにし
ます。
•
操 作 手 順 は、次 のとおりです。
① 次 の ス テ ー ト メ ン ト を 実 行 し て 、 バ ッ ク ア ッ プ フ ァ イ ル を 使 っ て 、 /etc/passwd フ ァ イ ル と
/etc/group ファイルを復 元 する。
[root@ws101 ~]# rm /etc/passwd
← 編 集 した/etc/passwd ファイルの削 除
rm: remove 通 常 ファイル `/etc/passwd'? y
[root@ws101 ~]# rm /etc/group
← 編 集 した/etc/group ファイルの削 除
rm: remove 通 常 ファイル `/etc/group'? y
[root@ws101 ~]# mv /etc/passwd.org /etc/passwd
← /etc/passwd ファ イルの復 元
[root@ws101 ~]# mv /etc/group.org /etc/group
← /etc/group ファイル の復 元
[root@ws101 ~]#
② userdel コマンドを使 って、新 規 に作 成 したユーザを削 除 する。
◇ userdel コマンドにより新 規 に作 成 したユーザを削 除 する操 作 例
[root@ws101 ~]# userdel -r sugimatsu
注 : -r は、ユーザのホームディレクトリとメールスプールも同 時 に削 除 するためのオプションです。
③ cat コマンドを使 って、/etc/passwd ファイルを表 示 し、新 規 ユーザのエントリ行 が削 除 されている
ことを確 認 する。
◇ cat コマンドによる/etc/passwd ファイルの表 示 例
[root@ws101 ~]# cat -n /etc/passwd
<前 略 >
42
dovecot:x:97:97:dovecot:/usr/libexec/dovecot:/sbin/nolo gin
43
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
44
mailman:x:41:41:GNU Mailing List Manager:/usr/lib/mailm an:/sbin/nologin
45
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
46
radiusd:x:95:95:radiusd user:/:/bin/false
[root@ws101 ~]#
注 : -n は、行 番 号 を表 示 するオプションです。
④ less コマンドを使 って、/etc/shadow ファイルを表 示 し、新 規 ユーザのパスワードに関 するエントリ
行 が削 除 されていることを確 認 する。
19
◇ less コマンドによる/etc/passwd ファイルの表 示 例
[root@ws101 ~]# less -N /etc/shadow
42 dovecot:!!:13581:0:99999:7:::
43 postfix:!!:13581:0:99999:7:::
44 mailman:!!:13581:0:99999:7:::
45 mysql:!!:13581:0:99999:7:::
46 radiusd:!!:13581:0:99999:7:::
(END)
注 : -N は、行 番 号 を表 示 するオプションです。
⑤ cat コマンドを使 って、/etc/group ファイルを表 示 し、新 規 ユーザのグループに関 するエントリ行
が削 除 されていることを確 認 する。
◇ cat コマンドによる/etc/group ファイルの表 示 例
[root@ws101 ~]# cat -n /etc/group
<前 略 >
51
postdrop:x:90:
52
postfix:x:89:
53
mailman:x:41:
54
mysql:x:27:
55
radiusd:x:95:
[root@ws101 ~]#
ユーザ情 報 を管 理 するすべてのファイルで、新 規 に作 成 したユーザに関 する情 報 が削 除 されたこと
が確 認 できます。
Ⅱマニュアル操 作 による新 規 ユーザの作 成
•
資 料 の後 半 部 分 では、パスワードの設 定 以 外 はコマンド操 作 を行 わずに、ファイルの編 集 操 作
だけで、新 規 のユーザを作 成 することによって、これまでに学 習 してきた内 容 の理 解 を、より一 層
深 めていきたいと思 います。
•
後 半 部 分 のキーワードも、やはり 3 つのファイルと 1 個 のディレクトリです。
•
つまり、Linux システムにおけるユーザ管 理 の仕 組 みのポイントは、これまでに学 習 してきました 3
つのファイルと 1 個 のディレクトリに尽 きると言 ってよいでしょう。
1. 新 規 ユーザの作 成 に必 要 な操 作
実 際 に 操 作 を始 める前 に、ファイルの編 集 操 作 だけで、 新 規 のユー ザ を作 成 する ための基 本 的 な
手 順 を整 理 しておきます。
(1) バックアップファイルの作 成
不 測 の事 態 が発 生 したときに、直 ちに原 状 復 帰 が出 来 るようにするために、マニュアル操 作 で
20
新 規 ユーザを作 成 するために編 集 する/etc/passwd ファイル、/etc/shadow ファイル、そして
/etc/group ファイルのバックアップファイルを作 成 します。
(2) パスワードファイルへの追 加
新 規 に作 成 するユーザに関 するユーザ情 報 を、/etc/passwd ファイルに追 加 します。
(3) shadow ファイルへの追 加
•
新 規 に作 成 するユーザのパスワード情 報 を、/etc/shadow ファイルに追 加 します。
•
ただし、このファイルで管 理 される暗 号 化 されたパスワード自 体 は、マニュアルでの新 規 ユー
ザの作 成 処 理 がすべて終 了 した後 に、passwd コマンドを実 行 することによって格 納 すること
になります。
(4) グループファイルへの追 加
必 要 に応 じて、新 規 に作 成 するユーザに関 するグループ情 報 を、/etc/group ファイルに追 加 し
ます。今 回 の事 例 では、/etc/group ファイルへの追 加 を行 うことにします。
(5) 新 規 ユーザのホームディレクトリの作 成
新 規 に作 成 するユーザのホームディレクトリ(ログインディレクトリ)を作 成 します。
(6) 基 本 的 なファイルやディレクトリのホームディレクトリへのコピー
作 成 したホームディレクトリに、/etc/skel/ディレクトリ下 のすべてのファイルとディレクトリをコピ
ーします。
(7) ホームディレクトリ内 のファイルとディレクトリ所 有 権 限 の変 更
/etc/skel/ ディ レク トリ からホ ーム ディ レク トリ コピ ーし た すべて のフ ァ イル やデ ィ レク トリ の 所 有
者 とグループを、新 規 に作 成 するユーザとグループに変 更 します。
(5)~(7)の新 規 ユーザのホームディレクトリを作 成 する処 理 は、実 はさまざまな操 作 方 法 があります。
今 回 のセミナーでは、(5)と(6)の処 理 を 1 回 で行 ってしまうという簡 略 化 した操 作 で行 うことにします。
2. 新 規 ユーザと新 規 グループの作 成
それでは、具 体 的 な情 報 に基 づいて、マニュアル操 作 による新 規 ユーザの作 成 を始 めることにしまし
ょう。
(1) 作 成 するユーザとグループに関 する情 報
新 規 に作 成 する 2 ユーザと 1 グループに関 する情 報 は、次 のとおりです。
① /etc/passwd ファイル関 連 情 報
/etc/passwd ファイルに記 述 する情 報 は、次 のとおりです。
21
◇ /etc/passwd ファイル関 連 情 報
フィールド
ユーザ 1
ユーザ 2
ログイン名
user1
user2
パスワード
ヌル
ヌル
ユーザ ID
701
702
グループ ID
700
700
コメント
test_user1
test_user2
ユーザホームディレクトリ
/home/user1
/home/user2
デフォルトシェルプログラム
/bin/bash
/bin/bash
② /etc/shadow ファイル関 連 情 報
/etc/shadow ファイルに記 述 する情 報 は、次 のとおりです。
◇ /etc/shadow ファイル関 連 情 報
フィールド
ユーザ 1
ユーザ 2
ログイン名
user1
user2
パスワード
ヌル
ヌル
1970 年 1 月 1 日 から最 後 にパスワードが変 更 された日 までの日 数
13588
13588
パスワードが変 更 可 能 となるまでの日 数
0
0
パスワードを変 更 しなくてはならなくなる日 までの日 数
99999
99999
パスワード有 効 期 限 が来 ることをユーザに警 告 する日 数
7
7
パスワード有 効 期 限 が過 ぎてから、アカウントが使 用 不 能 になるまでの日 数
ヌル
ヌル
1970 年 1 月 1 日 からアカウントが使 用 不 能 になる日 までの日 数
ヌル
ヌル
予 約 済 みのフィールド
ヌル
ヌル
③ /etc/group ファイル関 連 情 報
/etc/group ファイルに記 述 する情 報 は、次 のとおりです。
◇ /etc/group ファイル関 連 情 報
フィールド
グループ 1
グループ名
userx
パスワード
x
グループ ID
700
ユーザリスト
ヌル
(2) 編 集 するファイルのバックアップファイルを作 成 する
•
設 定 ファイルなどを編 集 する際 に、まず最 初 に行 う操 作 は、操 作 の 対 象 となるファイルのバック
アップファイルを作 成 することです。
•
バックアップファイルさえ作 成 しておけば、不 測 の事 態 が発 生 した場 合 でも、直 ちに原 状 復 帰 が
可 能 だからです。
•
それでは、編 集 操 作 を行 う/etc/passwd ファイル、/etc/shadow ファイル、そして/etc/group ファ
22
イルについて、次 のようなステートメントを実 行 して、バックアップファイルを作 成 してください。
◇ 3 つのファイルのバックアップファイルを作 成 する操 作 例
[root@ws101 ~]# cp /etc/passwd /etc/passwd.org
[root@ws101 ~]# cp /etc/shadow /etc/shadow.org
[root@ws101 ~]# cp /etc/group /etc/group.org
[root@ws101 ~]#
(3) /etc/passwd ファイルへ新 規 ユーザ情 報 を追 加 する
vi で/etc/passwd ファイルを開 き、/etc/passwd ファイルの関 連 情 報 に基 づき、新 規 の 2 ユーザを
作 成 するためのエントリの記 述 を、ファイルの末 尾 に追 加 してください。
① vi で/etc/passwd ファイルを開 く。
[root@ws101 ~]# vi /etc/passwd
② 新 規 に作 成 する 2 ユーザのエントリの記 述 を、次 のようにファイルの末 尾 に記 述 する。
user1::701:700:test_user1:/home/user1:/bin/bash
user2::702:700:test_user2:/home/user2:/bin/bash
③ :wq または :x と入 力 して Enter キーを押 し、編 集 した内 容 を保 存 した上 で、vi を終 了 させる。
(4) /etc/shadow ファイルへ新 規 ユーザのパスワード情 報 を追 加 する
•
vi で/etc/shadow ファイルを開 き、/etc/shadow ファイルの関 連 情 報 に基 づき、新 規 の 2 ユーザ
を作 成 するためのエントリの記 述 を、ファイルの末 尾 に追 加 してください。
•
なお、/etc/shadow ファイルを編 集 するの場 合 には、パーミッションに注 意 してください。
•
既 定 のパーミッションは 400 であり、ファイルの所 有 者 である root だけに、読 み込 み権 限 のみが
許 可 されています。
•
このパーミッションのままでは、root に書 き込 み権 限 がないため、このファイルを編 集 することが
できません。
•
そこで、一 旦 、パーミッションを 600 に変 更 して、root にのみ読 み込 み権 限 と書 き込 み権 限 を与
えた上 で編 集 操 作 を行 い、新 規 の 2 ユーザを作 成 するためのエントリの記 述 の追 加 が終 了 した
のちに、既 定 のパーミッション 400 に戻 すことにします。
① /etc/shadow ファイルのパーミッションを 600 に変 更 する。
[root@ws101 ~]# chmod 600 /etc/shadow
② vi で/etc/shadow ファイルを開 く。
[root@ws101 ~]# vi /etc/shadow
23
③ 新 規 に作 成 する 2 ユーザのエントリの記 述 を、次 のようにファイルの末 尾 に記 述 する。
user1::13588:0:99999:7:::
user2::13588:0:99999:7:::
④ :wq または :x と入 力 して Enter キーを押 し、編 集 した内 容 を保 存 した上 で、vi を終 了 させる。
⑤ /etc/shadow ファイルのパーミッションを、既 定 の設 定 である 400 に変 更 する。
[root@ws101 ~]# chmod 400 /etc/shadow
(5) /etc/group ファイルへ新 規 グループ情 報 を追 加 する
vi で/etc/group ファイルを開 き、/etc/group ファイルの関 連 情 報 に基 づき、新 規 の 1 グループを作
成 するためのエントリの記 述 を、ファイルの末 尾 に追 加 してください。
① vi で/etc/group ファイルを開 く。
[root@ws101 ~]# vi /etc/group
② 新 規 に作 成 する 1 グループのエントリの記 述 を、次 のようにファイルの末 尾 に記 述 する。
userx:x:700:
③ :wq または :x と入 力 して Enter キーを押 し、編 集 した内 容 を保 存 した上 で、vi を終 了 させる。
(6) 作 成 した新 規 ユーザでログインしてみよう(中 間 テスト)
お待 たせしました。それでは、ここまでの操 作 で設 定 した内 容 で、新 規 のユーザによってログインでき
るかどうかを、テストしてみることにしましょう。
④ Alt + F2 キーを押 して、新 しいコンソールを開 く。
⑤ ログイン名 として、user1 を入 力 して Enter キーを押 す。
⑥ パスワードを入 力 せずに、ログインできたことを確 認 する。
•
これまでのファイル編 集 操 作 で、入 力 ミスなどがなければ、user1 というログイン名 を入 力 すると、
パスワードを入 力 せずにログインできます。
•
ただし、ログインには成 功 しましたが、いつものログイン後 の画 面 とは違 いますね。
◇ user1 のログイン前 後 の画 面
CentOS release 4.4 (Final)
Kernel 2.6.9-42.EL on an i386
ws101 login: user1
No directory /home/user1!
← /home/user1 ディレクトリがありませんよ!
Loggin in the home = "/".
← /ディレクトリをホームディレクトリとしてログインしたよ
-bash-3.00$ _
← プロンプトの表 示 もいつもと違 いますね
24
•
ログイン後 の画 面 が、このように表 示 されるのは、まだ user1 のホームディレクトリを作 成 していな
いのが原 因 です。
•
このため、user2 でログインしても、同 じ現 象 が起 こるはずです。
•
それでは、一 旦 ログアウトした後 に、今 度 は user2 でログインして、同 じ画 面 が表 示 されることを
確 認 してみてください。
⑦ logout または exit と入 力 し、Enter キーを押 して、ログアウトする。
⑧ ログイン名 として、user2 を入 力 して Enter キーを押 す。
⑨ パスワードを入 力 せずに、ログインできたことを確 認 する。
◇ user2 のログイン前 後 の画 面
CentOS release 4.4 (Final)
Kernel 2.6.9-42.EL on an i386
ws101 login: user2
•
No directory /home/user2!
← /home/user2 ディレクトリがありませんよ!
Loggin in the home = "/".
← しかたがないので、/ディレクトリでログインしましたよ
-bash-3.00$ _
← 当 然 、いつもと同 じプロンプトは表 示 できませんからね
画 面 の表 示 は納 得 いかないかも知 れませんが、ここまでの操 作 に誤 りがなければ、このように表
示 されるのが正 常 なのです。だから、中 間 テストなんですよ。
•
それでは、ログインできることが確 認 できたら、すみやかにログアウトして、root 権 限 でログインし
ているコンソールに戻 り、新 規 のユーザを作 成 する操 作 を続 けることにしましょう。
⑩ logout または exit と入 力 し、Enter キーを押 して、ログアウトする。
⑪ Alt + F1 キーを押 して、root 権 限 でログインしているコンソールに戻 る。
以 上 で、中 間 テストは終 了 です。
3. 新 規 ユーザのホームディレクトリの作 成
•
マニュアル操 作 で新 規 のユーザを作 成 する作 業 も、いよいよ大 詰 めを迎 えつつあります。
•
ここからの操 作 が、最 終 段 階 の作 成 作 業 になりますので、ゆっくりで結 構 ですから、ひとつひとつ
の操 作 内 容 の意 味 を確 認 しながら、ホームディレクトリの作 成 を行 ってください。
(1) 新 規 ユーザのホームディレクトリを作 成 する
•
新 規 に作 成 する 2 ユーザのホームディレクトリを、/etc/passwd ファイルの第 6 ディレクトリに指 定
したディレクトリとして作 成 します。
•
今 回 は、ホームディレクトリの作 成 操 作 を簡 略 化 するために、格 納 されているファイルやサブディ
レ ク ト リ を 含 め て 、 /etc/skel/ デ ィ レ ク ト リ 全 体 を 、 /home/user1/ デ ィ レ ク ト リ 、 そ し て
25
/home/user2/ディレクトリという名 称 でコピーすることによって、新 規 の 2 ユーザのホームディレク
トリを作 成 することにします。
•
実 行 するステートメントは、次 のとおりです。
◇ /etc/skel/ディレクトリ全 体 をコピーして、新 規 の 2 ユーザのホームディレクトリを作 成 する
[root@ws101 ~]# cp -r /etc/skel/ /home/user1/
[root@ws101 ~]# cp -r /etc/skel/ /home/user2/
注 : -r は、ディレクトリを再 帰 的 にコピーするために指 定 するオプションです。
(2) ホームディレクトリ全 体 の所 有 権 限 を変 更 する
•
マニュアル操 作 で、新 規 ユーザを作 成 するための最 後 の処 理 は、たった今 作 成 したばかりの 2
ユーザのホームディレクトリの所 有 権 限 を、ホームディレクトリ下 に格 納 されているファイルやサブ
ディレクトリも含 めて、一 括 して変 更 する作 業 です。
•
このような処 理 を行 う場 合 には、所 有 権 限 を再 帰 的 に変 更 するために、chown コマンドに-R オプ
ションを指 定 して実 行 します。
•
実 行 するステートメントは、次 のとおりです。
◇ 新 規 に作 成 する 2 ユーザのホームディレクトリの所 有 権 限 を再 帰 的 に変 更 する
[root@ws101 ~]# chown -R user1:userx /home/user1/
[root@ws101 ~]# chown -R user2:userx /home/user2/
注 : 所 有 権 限 を指 定 する場 合 は、所 有 ユーザとグループをドット(.)で連 結 させても構 いません。
(3) 作 成 した新 規 ユーザによるログインしてみよう(最 終 テスト)
•
以 上 ですべての作 業 が、終 了 しました。残 る操 作 は、最 終 テストだけです。
•
最 終 テストは、新 たに作 成 した 2 ユーザによるログイン操 作 を行 います。
•
ログイン後 も、通 常 の画 面 が表 示 されれば、マニュアル操 作 による 2 ユーザの作 成 は成 功 した、
ということになります。
•
中 間 テストでも行 った操 作 ですが、今 度 はこれでクリアすれば、本 当 に終 わりですよ、というテスト
として行 うことにします。
① Alt + F2 キーを押 して、新 しいコンソールを開 く。
② ログイン名 として、user1 を入 力 して Enter キーを押 す。
③ パスワードを入 力 せずに、ログインできたことを確 認 する。
•
user1 というログイン名 を入 力 すると、パスワードを入 力 せずにログインできますね。
•
そして、次 のような画 面 が表 示 されれば、大 成 功 ですよ。
◇ user1 のログイン前 後 の画 面
CentOS release 4.4 (Final)
Kernel 2.6.9-42.EL on an i386
26
ws101 login: user1
Last Login: Mon Mar 12 17:57:04 on tty2
[user1@ws101 ~]$ _
•
正 常 にログインできることが確 認 できたら、一 旦 ログアウトして、今 度 は user2 でログインして、同
様 の確 認 を行 ってください。
④ logout または exit と入 力 し、Enter キーを押 して、ログアウトする。
⑤ ログイン名 として、user2 を入 力 して Enter キーを押 す。
⑥ パスワードを入 力 せずに、ログインできたことを確 認 する。
◇ user2 のログイン前 後 の画 面
CentOS release 4.4 (Final)
Kernel 2.6.9-42.EL on an i386
ws101 login: user2
Last Login: Mon Mar 12 17:58:12 on tty2
[user2@ws101 ~]$ _
•
いかがでしたか。新 規 に作 成 した 2 ユーザとも正 常 にログインできましたか。
•
残 念 ながら、何 らかのトラブルが発 生 した場 合 には、ひと作 業 ずつ逆 戻 りしながら、設 定 内 容 の
チェックを行 ってください。
•
それでは、ログアウトして、root 権 限 でログインしているコンソールへ戻 ってください。
⑦ logout または exit と入 力 し、Enter キーを押 して、ログアウトする。
⑧ Alt + F1 キーを押 して、root 権 限 でログインしているコンソールに戻 る。
以 上 で、最 終 テストは終 了 です。
27
終 わりに
ユーザ管 理 という操 作 は、たとえ Linux ユーザとしては初 心 者 であっても、ご自 分 の Linux マシン
を使 用 する場 合 には、欠 かすことのできない操 作 のひとつになります。
今 回 のハンズオンセミナーでは、Linux システムにおけるユーザ管 理 の仕 組 みを学 習 することを通
して、Linux というすばらしい OS への理 解 を深 めて頂 きたいと考 えまして、コマンド操 作 から少 し離 れ
て、Linux の膨 大 な機 能 のほんの一 部 分 に、皆 さんと一 緒 にアプローチしてみました。
今 回 のセミナーに参 加 されて、Linux に対 する皆 さんの興 味 が、ほんの少 しでも大 きいものになっ
てくれたならば、今 回 のセミナーは大 成 功 だったと言 ってよいと思 います。
またいつの日 か、短 い時 間 であったとしても、皆 さんとご一 緒 に Linux について学 習 できる機 会 に
恵 まれるならば、これほど幸 せなことはないと思 っております。
2007 年 3 月 16 日
ハンズオンセミナー・スタッフ一 同
28
Appendix ユーザ管 理 コマンドの設 定 ファイル
今 回 のハンズオンセミナーの中 で、主 要 なファイルの既 定 値 や useradd コマンドのデフォルトのオプ
シ ョ ン が 指 定 さ れ て い る 設 定 フ ァ イ ル と し て 、 頻 繁 に 登 場 し ま し た /etc/login.defs フ ァ イ ル と 、
/etc/default/useradd ファイルの内 容 を、付 録 として掲 載 しておきます。今 後 の Linux の学 習 や運
用 の際 に、参 考 にしてください。
1. /etc/login.defs - shadow パスワード機 能 の設 定
◇ /etc/login.defs ファイル (CentOS 4.4)
# *REQUIRED*
#
Directory where mailboxes reside, _or_ name o f file, relative to the
#
home directory.
#
QMAIL_DIR is for Qmail
If you _do_ define both, MAIL_DIR takes pr ecedence.
#
#QMAIL_DIR
Maildir
MAIL_DIR
/var/spool/mail
#MAIL_FILE
.mail
# Password aging controls:
#
#
PASS_MAX_DAYS
Maximum number of days a password may be us ed.
#
PASS_MIN_DAYS
Minimum number of days allowed between pass word changes.
#
PASS_MIN_LEN
Minimum acceptable password length.
#
PASS_WARN_AGE
Number of days warning given before a passw ord expires.
#
PASS_MAX_DAYS
99999
PASS_MIN_DAYS
0
PASS_MIN_LEN
5
PASS_WARN_AGE
7
#
# Min/max values for automatic uid selection in useradd
#
UID_MIN
500
UID_MAX
60000
#
# Min/max values for automatic gid selection in groupadd
#
29
GID_MIN
500
GID_MAX
60000
#
# If defined, this command is run when removing a user.
# It should remove any at/cron/print jobs etc. owned by
# the user to be removed (passed as the first argument).
#
#USERDEL_CMD
/usr/sbin/userdel_local
#
# If useradd should create home directories for users by default
# On RH systems, we do. This option is ORed with the -m flag on
# useradd command line.
#
CREATE_HOME yes
2. /etc/default/useradd - デフォルト情 報
◇ /etc/default/useradd ファイル (CentOS 4.4)
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
以
上
30