UNIX には、一般の利用者(ユーザー)に対して使いやすく安全な UNIX 環境を提供するために、 UNIX システムを管理する特別の権限を持ったシステム管理者が存在します。 そうしたシステム管理者を UNIX では、スーパー・ユーザー、もしくは root と呼んでいます。
同じ root と言う名前を持つものに、これから学ぶであろう UNIX のファイル・システムの最上部のディレクトリーがありますが、 UNIX では特権を持ったシステム管理者のログイン・ユーザー名にこの名前を使うという慣習があります。 即ち root = スーパー・ユーザー = システム管理者(機器管理者)ということになります。 このドキュメントにおいて、これら3つの言葉は、特に区別しないで用います。
かつて UNIX の世界でスーパー・ユーザーといえば、それぞれの大学や研究所で UNIX を取り仕切る、 一人か二人の雲の上の仙人といったイメージがありました。 しかし、今は違います。それぞれの研究室に、会社のそれぞれのセクションに、 UNIX のスーパー・ユーザーが必要になりました。
家庭で良く使われる、いわゆる"Windows 95/98/Me マシン" "MAC" では、 パソコンのユーザーとそのパソコンの管理者との間には──大抵の場合同じ人間が両方を兼ねており── 明確な違いはありません。 しかし、UNIX の場合は違います。いかにスーパー・ユーザーの大衆化が進んだとしても、 UNIX の一般ユーザーと、UNIX のスーパー・ユーザーとは、はっきり区別されなければなりません。
root には、主に次のような仕事があります。
UNIX や Linux では、root が絶大な権限を持っています。 このことを UNIX の弱点の一つに数える議論もあるくらいです。 マシンを生かすも殺すも、root の指一つにかかっています。 逆に言えば root は、非常に重い責任を負わされているということです。
マシンがうまく動かないとき、ユーザーは root に文句を言います。 では、root は誰に文句を言えばいいのでしょう。 コンピュータの機械的なトラブルだったらメーカーに、 ソフトウェアのバグが原因だったらソフトウェア会社にクレームをつけることはできます。 いずれにせよ、トラブルの原因を見つけて対策を立てるのは、 一般ユーザーではなく、root の仕事です。 しかし一方で、root の責任に帰されるべき多くのトラブルもあることを忘れないで下さい。
今回のカリキュラムでは、最低限の UNIX(Linux)の基礎、 そしてインターネットを始めとするネットワークに関して学習してもらった上で、 皆さんに、それぞれのマシンの root としての大きな権限を開放します。 それは全てのトラブルに対して、root としての責任を皆さんに負って頂くということです。
先に触れた root の仕事の一つ「ユーザー管理」の第一歩が、 このアカウントの作成です。 アカウントとは、コンピュータやネットワーク上の資源やサービスを利用できる権利のこと、 または利用する際に必要な ID のことです。 UNIX が稼働しているコンピュータのユーザーとなるには、 ユーザーの情報をシステムに登録する必要があります。 コンピュータから見たアカウントとは、このユーザー登録情報に該当します。 アカウントの作成 = ユーザー情報の登録 と言えるでしょう。
ユーザーの情報は基本的に /etc ディレクトリ内の passwd, shadow, group ファイルに登録されています。 ディレクトリとファイルについてはこの後、学習します。
/etc/passed には以下のような内容が書き込まれています。
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
mail:x:8:8:mail:/var/spool/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
postgres:x:31:32:postgres:/var/postgres:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
msql:x:36:36:Mini SQL Database Manager:/var/lib/msql:/bin/sh
operator:x:37:37:Operator:/var:/bin/sh
list:x:38:38:SmartList:/var/list:/bin/sh
keikei:x:1000:1000:Kuramoto Kiyoshi:/home/keikei:/bin/bash
sugiyama:x:1005:1005:SUGIYAMA Ko-ichiro:/home/sugiyama:/bin/bash
dongury:x:1007:1007:Hitoshi KONO:/home/dongury:/bin/bash
1行に1ユーザーの情報が記述されています。 個々のユーザーの情報として、コロン(:)で区切られた7つのフィールドに、 次のような内容が左から順に書き込まれています。
ユーザー ID、グループ IDの決める際は、 100 以下は用いないようにしましょう。 また、規模が拡大したときに困らないように、 あらかじめ計画的に付ける必要があります。
/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 の数値:グループに属するメンバー全員のユーザー名 (個々のユーザー名はコンマで区切られる)」の形で書かれています。
/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 の権限をなくして閲覧することはできません。
具体的なアカウントの作成手順は、用いられている UNIX(Linux) のシステムによって様々です。ここでは、Debian GNU/Linux 2.2 を例にとって 話を進めます。
かつてアカウントの作成には、先程紹介した /etc/passwd ファイルなどを手で書き換える作業を伴いましたが、 現在では adduser コマンドが、一連の作業を代行してくれます。 なお、/etc/passwd ファイルを手で直接書きかえる場合も、 専用のエディタを使うことが推奨されますので、注意してください。
以下は adduser を使った新規アカウントの追加方法です。
# adduser samson Adding user samson... Adding new group samson (1001). Adding new user samson (1001) with group samson. Creating home directory /home/samson. Copying files from /etc/skel Enter new UNIX password: |
< 新規アカウントとして、ログイン名"samson"を指定。 > ユーザー"samson"を追加しています... > "samson"というグループ(グループ ID:1001)も追加してます。 > ユーザー"samson"(ユーザー ID:1001)をグループ"samson"に追加してます。 > ユーザー"samson"のホームディレクトリ /home/samson を作成しています。 > 個人用の設定ファイルを /etc/skel からコピーしています。 > 新しい UNIX パスワードを入力してください: |
Enter new UNIX password:(何も表示されず) Retype new UNIX password:(何も表示されず) passwd: password updated successfully Changing the user information for samson Enter the new value, or press return for the default Full Name []: |
< 適切なパスワードを入力し設定します。 < 確認のため、もう一度同じものを入力します。 > パスワードは正常に更新されました。 > ユーザー"samson"の情報を変更します。 > 新しい値を入力、または標準値(角括弧内に表示)を用いるならそのまま Enter キーを押してください。 > フルネームをどうぞ: |
Enter the new value, or press return for the default Full Name []: Samson SUGIURA Room Number []: S302 Work Phone []: 011-***-**** Home Phone []: Other []: samson@ep.sci.hokudai.ac.jp Is the information correct? [y/n] |
< ユーザーの姓名を入力します。 < 所属する研究室の部屋番号など、を入力します。 < 所属する研究室の電話番号など、を入力します。 < 自宅の電話番号を入力したい場合はここへ。 < メールアドレスを持っている人は、ここへ入力。 > これで良い?[はい/いいえ] |
Enter the new value, or press return for the default Full Name []: Samson SUGIURA Room Number []: S302 Work Phone []: 011-***-**** Home Phone []: Other []: samson@ep.sci.hokudai.ac.jp Is the information correct? [y/n] y |
< 正しい場合は y 、間違っていれば n を入力します。
|
ユーザーの情報を変更する、あるいは adduser や useradd コマンドを利用せずに 直接設定ファイルを編集してアカウントを追加する場合、 それぞれの設定ファイル専用のコマンドを用いて編集しなければいけません。
各設定ファイルと編集用コマンドの対応は下記の通りです。
設定ファイル | /etc/passwd | /etc/group | /etc/shadow |
---|---|---|---|
編集用コマンド | vipw | vigr | vipw -s |
これらの編集用コマンドは全て vi という文字が頭に付いていますが、 それはこれらがエディタ vi と操作が同じであることを意味しています。 vi の使い方については、後で学習します。
最終更新日: 2000/10/02(河野仁之) | Copyright © 2000 inex |