IT pass HikiWiki - [Exp2020]アカウント作成について Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

{{toc}}

((<"スケジュール表・各回資料 (09/29)"|[Exp2020]スケジュール表・各回資料#09-2F29>))へ

= 概要

#いよいよ, 情報実験機にアカウントを作成します.

レクチャーで触れたように, UNIX 系のシステムには以下 2 種類のアカウントがあります.
* システム管理者のアカウント (root)
* 一般利用者のアカウント

#今日皆さんに作成していただくのは一般利用者のアカウントです.
#後日の実習では, システム管理者のアカウントも作成することになるので, それを踏まえて,
このページでは,

* システム管理者 (root) についての説明
* アカウント作成にあたっての解説

を行います.

= 管理者 (root)

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

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

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

家庭で良く使われる, いわゆる "Windows", "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 です. 今後のカリキュラムでは, 最低限の UNIX (Linux) の基礎, そしてインターネットを始めとするネットワークに関して学習してもらった上で, 皆さんに, それぞれのマシンの root としての大きな権限を開放します皆さん自身です. それは全てのトラブルに対して, root としての責任を皆さんに負って頂くということです.


= アカウントの作成

== アカウント

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

=== ユーザの情報

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

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

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

=== adduser

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

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

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

  (2) adduser コマンドを実行します. ここでは新規アカウントとして hoge さんを追加すると仮定しています.
  
      今回, アカウント名には原則的に ((*半角英字の小文字と数字のみ*)) を使
      用するようにしてください. (ITPASS サーバでのアカウント名と同じにする
      ためです). システムにも依りますが, その他の特殊文字などは使えません.
      長すぎるものやランダムな文字列など, あまりおかしな名前をつけるのもお
      勧めできません.

        # adduser hoge                      < 新規アカウントとして, ログイン名 'hoge' を指定.
        ユーザ 'hoge' を追加しています...
        新しいグループ 'hoge' (1001) を追加しています...
        新しいユーザ 'hoge' (1001) をグループ 'hoge' として追加しています...
        ホームディレクトリ '/home/hoge' を作成しています...
        '/etc/skel' からファイルをコピーしています...
        新しい UNIX パスワードを入力してください:


  (3) パスワードを聞かれるので, 適切なパスワードを入力します. この時,
      側で見ている人に知られないようにする目的で, 打ち込んだパスワー
      ドは画面には表示されません. パスワードは大文字, 小文字, 数字,
      記号などを 8 文字以上並べて構成します. パスワードはセキュリティ上
      たいへん重要なものですから, パスワードの付け方には注意してください.
      (※詳しくは ((<[Exp2020]パスワードセキュリティ>)) を参照)
  
        新しい UNIX パスワードを入力してください:(何も表示されず)
        新しい UNIX パスワードを再入力してください:(何も表示されず)
        パスワードは正しく更新されました
        hoge のユーザ情報を変更中
        新しい値を入力してください. 標準設定値を使うならリターンを押してください
          フルネーム:


  (4) パスワードを 2 回入力し, 問題がなければ, ユーザの個人情報登録に進みます. 尋ねられるのは,
  
      * フルネーム
      * 部屋番号
      * 勤め先の電話番号
      * 自宅の電話番号
      * その他の情報
      
      です. 1 項目入力し終わった段階で Enter キーを押すと次の項目に進
      みます. フルネーム以外の情報は省略しても結構ですが, メールアド
      レスを持っている人は, 「その他の情報」欄に入力して下さい.

        新しい値を入力してください. 標準設定値を使うならリターンを押してください  
            フルネーム []: Sugiura Hoge
            部屋番号 []:
            職場電話番号 []:
            自宅電話番号 []:
            その他 []:
        以上で正しいですか? [Y/n]


  (5) 最後の項目を入力し終えると, それまで入力した内容に間違いがないか
      確認してきますので, 正しい場合は Y , 間違っていれば n を入力し,
      Enter キーを押します.

        新しい値を入力してください. 標準設定値を使うならリターンを押してください  
            フルネーム []: Sugiura Hoge
            部屋番号 []:
            職場電話番号 []:
            自宅電話番号 []:
            その他 []:
        以上で正しいですか? [Y/n] Y            < 正しい場合は Y, 間違っていれば n を入力します.


  (6) こうして新規アカウント 'hoge' を追加することができました追加することができます.


=== その他の方法について

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

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

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

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



== パスワード変更の方法

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

  $ passwd

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

  $ passwd
  hoge 用にパスワードを変更中
  現在の UNIX パスワード:


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

  $ passwd
  hoge 用にパスワードを変更中
  現在の UNIX パスワード:                    < 今使っているパスワードを入力します.
  新しい UNIX パスワードを入力してください:

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

  $ passwd
  hoge 用にパスワードを変更中
  現在の UNIX パスワード:              
  新しい UNIX パスワードを入力してください:               < 新しく設定するパスワードを入力します.
  新しい UNIX パスワードを再入力してください:             < 確認のため, もう一度同じものを入力します
  パスワードは正しく更新されました


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

#
== #== ログイン


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

  

#
#  
Debian GNU/Linux 9 joho??-itpass tty1

  

#
#  
joho??-itpass login: hoge
  

#  
Password: (打ったパスワードは表示されない)


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

  

#
#  
hoge@joho??-itpass:~$


#
#
ここで

  

#
#  
hoge@joho??-itpass:~$ startx


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


==

#
#
#==
ログアウト


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


#
#
まず, 画面上部の「システム」から, 「XXXX のログアウト」を選びます.
#これによって GUI から CUI に戻ります.
((*この「ログアウト」ではログアウトは完了しないので注意してください*)).
#
#それから, 以下のようにログアウトします.

  

#
#  
hoge@joho??-itpass:~$ logout


#
#
または

  

#
#  
hoge@joho??-itpass:~$ exit


#
#
と入力してください.


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

  

#
#  
joho??-itpass login:
#



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


= 時間が余った人のための追加教材

* ((<Unix系OSでのユーザ情報に関するファイル|[Exp2020]Unix系OSでのユーザ情報に関するファイル>))
* ((<パスワードセキュリティ|[Exp2020]パスワードセキュリティ>))


= 参考資料

このページは以下の資料を基に作成しました.
* ((<"北海道大学 理学院 情報実験 (INEX)"|URL:http://www.ep.sci.hokudai.ac.jp/~inex>))
  * ((<" 最低限 UNIX / Linux [I] アカウントの作成 (2007 年度資料)"|URL:http://www.ep.sci.hokudai.ac.jp/~inex/y2007/1012/1013.1.html>))
  * ((<" 最低限 UNIX / Linux [I] アカウントの作成とログイン, ログアウトの作法 (2012 年度資料)"|URL:http://www.ep.sci.hokudai.ac.jp/~inex/y2012/0420/practical/practical_1.html>))


((<"スケジュール表・各回資料 (09/29)"|[Exp2020]スケジュール表・各回資料#09-2F29>))へ