最低限 UNIX / Linux [I]

本日の実習 [アカウントの作成] 詳しく知りたい人のために
  1. ルートと一般利用者
  2. アカウントの作成
  3. ログイン
  4. パスワードの変更
  5. ログアウト

  1. ユーザー情報に関するファイル
  2. パスワードセキュリティー
  3. UNIX の代表的なコマンド
  4. マルチユーザを実感する
  5. 最低限 vi

1. ルートと一般利用者

[1.1] root(ルート)

UNIX には、一般の利用者(ユーザー)に対して使いやすく安全な UNIX 環境を提供するために、 UNIX システムを管理する特別の権限を持ったシステム管理者が存在します。 そうしたシステム管理者を UNIX では、スーパー・ユーザー、もしくは root と呼んでいます。

同じ root と言う名前を持つものに、これから学ぶであろう UNIX のファイル・システムの最上部のディレクトリーがありますが、 UNIX では特権を持ったシステム管理者のログイン・ユーザー名にこの名前を使うという慣習があります。 即ち root = スーパー・ユーザー = システム管理者(機器管理者)ということになります。 このドキュメントにおいて、これら3つの言葉は、特に区別しないで用います。

かつて UNIX の世界でスーパー・ユーザーといえば、それぞれの大学や研究所で UNIX を取り仕切る、 一人か二人の雲の上の仙人といったイメージがありました。 しかし、今は違います。それぞれの研究室に、会社のそれぞれのセクションに、 UNIX のスーパー・ユーザーが必要になりました。

家庭で良く使われる、いわゆる"Windows 98/Me/XP マシン" "MAC" では、 パソコンのユーザーとそのパソコンの管理者との間には──大抵の場合同じ人間が両方を兼ねており── 明確な違いはありません。 しかし、UNIX の場合は違います。いかにスーパー・ユーザーの大衆化が進んだとしても、 UNIX の一般ユーザーと、UNIX のスーパー・ユーザーとは、はっきり区別されなければなりません。


[1.2] root の役割

root には、主に次のような仕事があります。

  1. システムの立ち上げとシャットダウン
  2. プロセス管理
  3. ユーザー管理
  4. ファイルシステム管理
  5. ネットワーク管理
  6. システムのセキュリティ管理
  7. システムのインストール
  8. カーネルのコンフィギュレーション
  9. アプリケーションのインストール

UNIX や Linux では、root が絶大な権限を持っています。 このことを UNIX の弱点の一つに数える議論もあるくらいです。 マシンを生かすも殺すも、root の指一つにかかっています。 逆に言えば root は、非常に重い責任を負わされているということです。

マシンがうまく動かないとき、ユーザーは root に文句を言います。 では、root は誰に文句を言えばいいのでしょう。 コンピュータの機械的なトラブルだったらメーカーに、 ソフトウェアのバグが原因だったらソフトウェア会社にクレームをつけることはできます。 いずれにせよ、トラブルの原因を見つけて対策を立てるのは、 一般ユーザーではなく、root の仕事です。 しかし一方で、root の責任に帰されるべき多くのトラブルもあることを忘れないで下さい。

今回のカリキュラムでは、みなさんの前にある情報実験機の root は、 周りに居るボランティア TA や TA、STAFF です。 今後のカリキュラムでは、最低限の UNIX(Linux)の基礎、 そしてインターネットを始めとするネットワークに関して学習してもらった上で、 皆さんに、それぞれのマシンの root としての大きな権限を開放します。 それは全てのトラブルに対して、root としての責任を皆さんに負って頂くということです。




2. アカウントの作成

[2.1] アカウント

先に触れた root の仕事の一つ「ユーザー管理」の第一歩が、 このアカウントの作成です。 アカウントとは、コンピュータやネットワーク上の資源やサービスを利用できる権利のこと、 または利用する際に必要な ID のことです。 UNIX が稼働しているコンピュータのユーザーとなるには、 ユーザーの情報をシステムに登録する必要があります。 コンピュータから見たアカウントとは、このユーザー登録情報に該当します。 アカウントの作成 = ユーザー情報の登録 と言えるでしょう。


[2.2] ユーザーの情報

ユーザーの情報は基本的に /etc ディレクトリ内の passwd, shadow, group ファイルに登録されています。 それぞれのファイルの説明は 「5. ユーザー情報に関するファイル」 を参照.


[2.3] アカウント作成手順(新規ユーザーの登録)

具体的なアカウントの作成手順は、用いられている UNIX(Linux) のシステムによって様々です。ここでは、Debian GNU/Linux 5.0 を例にとって 話を進めます。

[2.3.1] adduser

かつてアカウントの作成には、先程紹介した /etc/passwd ファイルなどを手で書き換える作業を伴いましたが、 現在では adduser コマンドが、一連の作業を代行してくれます。 なお、/etc/passwd ファイルを手で直接書きかえる場合も、 専用のエディタを使うことが推奨されますので、注意してください。

以下は adduser を使った新規アカウントの追加方法です。

  1. root 権限を行使できる状態にします。 具体的には、root でログインするか、su もしくは sudo コマンドで 一時的に root に成り代わります。 最初のうちは皆さんは root に成ることはできませんから、 手近なTAに頼みましょう。

  2. adduser コマンドを実行します。 ここでは新規アカウントとして samson さんを追加すると 仮定しています。
    アカウント名には半角英字(大文字、小文字)、数字とハイフン"-" が使えます( ピリオド "." や アンダースコア "_" も使えるかも しれません)。システムにも寄りますが、その他の特殊文字などは 使えません。長すぎるものやランダムな文字列など、あまりおかしな 名前をつけるのはお勧めできません。

    # 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 パスワードを入力してください:
    

  3. パスワードを聞かれるので、適切なパスワードを入力します。 この時、側で見ている人に知られないようにする目的で、 打ち込んだパスワードは画面には表示されません。 パスワードは大文字、子文字、数字、記号などを 6文字以上並べて構成します。 8文字以降は入力しても無視されます。 パスワードはセキュリティ上たいへん重要なものですから、 パスワードの付け方には注意してください。 (※詳しくは「6. パスワードセキュリティー」や 「最低限セキュリティ パスワードの正しい付け方」を参照)
    次の節でパスワードの変更の実習を行いますので、ここでは 仮のパスワード(単純なものでよいです)を入力してください。

    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 キーを押してください。
    > フルネームをどうぞ:
    

  4. パスワードを2回入力し、問題がなければ、 ユーザーの個人情報登録に進みます。 尋ねられるのは、
    • フルネーム
    • 部屋番号
    • 勤め先の電話番号
    • 自宅の電話番号
    • その他の情報
    で、1項目入力し終わった段階で 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]
    
    
    < ユーザーの姓名を入力します。
    < 所属する研究室の部屋番号など、を入力します。
    < 所属する研究室の電話番号など、を入力します。
    < 自宅の電話番号を入力したい場合はここへ。
    < メールアドレスを持っている人は、ここへ入力。
    > これで良い?[はい/いいえ]
    

  5. 最後の項目を入力し終えると、それまで入力した内容に間違いがないか 確認してきますので、正しい場合は y 、間違っていれば n を入力し、 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] y
    
    
    < 正しい場合は y 、間違っていれば n を入力します。
    

  6. こうして新規アカウント"samson"を追加することができました。

[2.3.2] その他の方法において

ユーザーの情報を変更する、あるいは adduser や useradd コマンドを利用せずに 直接設定ファイルを編集してアカウントを追加する場合、 それぞれの設定ファイル専用のコマンドを用いて編集しなければいけません。

各設定ファイルと編集用コマンドの対応は下記の通りです。

設定ファイル /etc/passwd /etc/group /etc/shadow
編集用コマンド vipw vigr vipw -s

これらの編集用コマンドは全て vi という文字が頭に付いていますが、 それはこれらがエディタ vi と操作が同じであることを意味しています。 vi の使い方については、後で学習します。




3. ログイン方法

無事にアカウントのできたみなさん, おめでとうございます.
それでは早速今作ったアカウントを使って joho** (** は担当マシンの番号)に ログインしてみましょう.
Debian GNU/Linux 5.0 joho** tty1

joho** login: samson
Password: (打ったパスワードは表示されない)
うまくログインできると以下のような待受け画面になります.
samson@joho**:~$ 
ここで
samson@joho**:~$ startx
と入力してみて下さい. そうすると…


4. パスワードの変更

ログイン用パスワードを変更するには、passwd コマンドを用います。

$ passwd

passwd と入力し Enter キーを押すと、次のように表示されます。 下の例は adon さんがパスワードを変更していると仮定しています。

$ passwd
Changing password for adon.
(current) UNIX password:

> ユーザー"adon" のパスワードを変更します。
> ユーザー"adon" の(現在の)パスワードは?

今使っているパスワードを尋ねてくるので、入力し、Enter を押します。 この時、画面には何も表示されません。

$ passwd
Changing password for adon.
(current) UNIX password:
Enter new UNIX password:


< 今使っているパスワードを入力します。
> ユーザー"adon" の新しいパスワードは?

今度は新しく設定するパスワードを尋ねてくるので、入力し、Enter を押します。 続いて確認のために再度入力するようにと表示が出るので、 新しく設定するパスワードをもう一度おなじように入力し、Enter を押します。 この時も、画面には何も表示されません。

$ passwd
Changing password for adon.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully



< 新しく設定するパスワードを入力します。
< 確認のため、もう一度同じものを入力します。
> パスワードは正常に更新されました。

問題がなければ、これでパスワードの変更作業は終わりです。




5. ログアウト方法

コンピュータを利用し終わった後はログアウトする必要があります。 ログインしたまま放置してしまうと他人に操作され、大事なファイルを 破壊されたり、不正アクセスなどの犯罪に利用されてしまうかもしれません。

ログアウトは次のようにします。

samson@joho**:~$ logout

または

samson@joho**:~$ exit

ログアウトすると次のように表示され、次のログインを待ち受け状態になります。

joho** login: 



本日の実習は以上で終了です. 時間が余ってしまった場合には こちら へどうぞ.

情報実験第二回のページへ戻る

最終更新日: 2010/04/20(馬場健聡) Copyright © 2009 inex