[Exp2008]Unix系OSでのアカウント作成

ルートと一般利用者

root (ルート)

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

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

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

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

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 としての責 任を皆さんに負って頂くということです.

アカウントの作成

アカウント

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

ユーザーの情報

ユーザーの情報は基本的に /etc ディレクトリ内の passwd, shadow, group ファイルに登録されています. それぞれのファイルの説明は [Exp2008]Unix系OSでのユーザー情報に関するファイル を参照してください.

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

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

adduser

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

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

  1. root 権限を行使できる状態にします. 具体的には, root でログイン するか, su もしくは sudo コマンドで 一時的に root に成り代わります. 最初のうちは皆さんは root に成ることはできませんから, 手近な TA に頼 みましょう.
  2. adduser コマンドを実行します. ここでは新規アカウントとして samson さんを追加すると 仮定しています.

    アカウント名には原則的に半角英字 (大文字, 小文字), 数字とハイフン"-" が 使えます ( ピリオド "." や アンダースコア "_" も使えるかも しれません). ただし, 今回情報実験機にアカウントを使う際には, 半角英字の小文字および数字のみ を使用するようにしてください. (以後の EPA サーバでのアカウント名と同じにするためです). システムにも寄りますが, その他の特殊文字などは 使えません. 長すぎるも のやランダムな文字列など, あまりおかしな 名前をつけるのはお勧めできま せん.

    # adduser samson                       < 新規アカウントとして, ログイン名"samson"を指定.
    Adding user samson...                  > ユーザー"samson"を追加しています...
    Adding new group samson (1001).        > "samson"というグループ (グループ ID:1001) も追加してます.
    Adding new user samson (1001)          > ユーザー"samson"(ユーザー ID:1001) を
                 with group samson.          グループ"samson"に追加してます.
    Creating home directory /home/samson.  > ユーザー"samson"のホームディレクトリ
                                             /home/samson を作成しています.
    Copying files from /etc/skel           > 個人用の設定ファイルを /etc/skel からコピーしています.
    Enter new UNIX password:               > 新しい UNIX パスワードを入力してください:
  3. パスワードを聞かれるので, 適切なパスワードを入力します. この時, 側で見ている人に知られないようにする目的で, 打ち込んだパスワー ドは画面には表示されません. パスワードは大文字, 子文字, 数字, 記号などを 6 文字以上並べて構成します. 8 文字以降は入力しても無 視されます. パスワードはセキュリティ上たいへん重要なものですか ら, パスワードの付け方には注意してください. (※詳しくは [Exp2008]パスワードセキュリティ を参照)

    次の節でパスワードの変更の実習を行いますので, ここでは 仮のパス ワード (単純なものでよいです) を入力してください.

    Enter new UNIX password:(何も表示されず)  < 適切なパスワードを入力し設定します.
    Retype new UNIX password:(何も表示されず) < 確認のため, もう一度同じものを入力します.
    passwd: password updated successfully       > パスワードは正常に更新されました.
    Changing the user information for samson    > ユーザー"samson"の情報を変更します.
    Enter the new value,                        > 新しい値を入力, または標準値 (角括弧内に表示)
          or press return for the default         を用いるならそのまま Enter キーを押してください.
      Full Name []:                             > フルネームをどうぞ:
  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@epa.scitec.kobe-u.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 []: 078-***-****
        Home Phone []: 
        Other []: samson@epa.scitec.kobe-u.ac.jp
    Is the information correct? [y/n] y            < 正しい場合は y ,
                                                     間違っていれば n を入力します.
  6. こうして新規アカウント"samson"を追加することができました.

その他の方法において

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

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

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

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

パスワードの変更

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

$ passwd

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

$ passwd
Changing password for adon   > ユーザー"adon" のパスワードを変更します.
(current) UNIX password:     > ユーザー"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

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

ログイン方法

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

Debian GNU/Linux 4.0 joho** tty1

joho** login: samson
Password: (打ったパスワードは表示されない)

うまくログインできると以下のような待受け画面になります.

samson@joho**:~$ 

ここで

samson@joho**:~$ startx

と入力してみて下さい. そうすると CUI (Character User Interface) から GUI (Graphical User Interface) へ移行します.

ログアウト方法

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

まず, 画面上部の「デスクトップ」から, 「XXXX のログアウト」を選びます. これによって GUI から CUI に戻ります. この「ログアウト」ではログアウトは完了しないので注意してください.

それから, 以下のようにログアウトします.

samson@joho**:~$ logout

または

samson@joho**:~$ exit

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

joho** login: 

情報実験機へのアカウント作成作業は以上です. 次は EPA サーバへのアカウント作成を行います.