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
© Copyright 2024 Paperzz