最低限 Unix / Linux [I]

1. アカウントの作成とログイン, ログアウトの作法

必修

  1. アカウント作成とログイン, ログアウトの作法
  2. Unix の代表的なコマンド
  3. ファイルとディレクトリ
  4. パーミッション

発展

  1. ユーザ情報に関するファイル
  2. ルートディレクトリにある主なディレクトリ
  3. パーミッション付録

[0.0] 注意事項

実技編では, 以下のように下線が引かれている部分をみなさんに入力してもらいます.
次の行は出力結果です (あなたのアカウント名が "hoge" の場合).

例)
$ pwd
/home/hoge

[1.1] ルートと一般ユーザ

[1.1.1] root(ルート)

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

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

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

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


[1.1.2] root の役割

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

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

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

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

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




[1.2] アカウントの作成

[1.2.1] アカウント

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


[1.2.2] ユーザの情報

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


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

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

[1.2.3.1] adduser

かつてアカウントの作成には, /etc/passwd というファイルを書き換える作業を伴いましたが, 現在では adduser コマンドが, 一連の作業を代行してくれます. なお, /etc/passwd ファイルを手で直接書きかえる場合も, 専用のエディタを使うことが推奨されますので, 注意してください (発展の「ユーザ情報に関するファイル」のページを参照).

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

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

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

    # adduser someone
    Adding user `someone' ...
    Adding new group `someone' (1001) ...
    Adding new user `someone' (1001) with group someone ...
    Creating home directory `/home/someone' ...
    Copying files from `/etc/skel' ...
    Enter new UNIX password:
    
    < 新規アカウントとして, ログイン名"someone"を指定.
    > ユーザ"someone"を追加しています...
    > "someone"というグループ(グループ ID:1001)も追加してます.
    > ユーザ"someone"(ユーザ ID:1001)をグループ"someone"に追加してます.
    > ユーザ"someone"のホームディレクトリ /home/someone を作成しています.
    > 個人用の設定ファイルを /etc/skel からコピーしています.
    > 新しい UNIX パスワードを入力してください:
    

  3. パスワードを聞かれるので, 適切なパスワードを入力します. この時, 側で見ている人に知られないようにする目的で, 打ち込んだパスワードは画面には表示されません. パスワードは大文字, 小文字, 数字, 記号などを 8 文字以上並べて構成します. レクチャーで学んだとおりパスワードはセキュリティ上たいへん重要なものですから, パスワードの付け方には十分注意してください.

    Enter new UNIX password:(何も表示されず)
    Retype new UNIX password:(何も表示されず)
    passwd: password updated successfully
    Changing the user information for someone
    Enter the new value, or press return for the default
            Full Name []:
    
    < 適切なパスワードを入力し設定します.
    < 確認のため, もう一度同じものを入力します.
    > パスワードは正常に更新されました.
    > ユーザ"someone"の情報を変更します.
    > 新しい値を入力, または標準値(角括弧内に表示)を用いるならそのまま Enter キーを押してください.
    > フルネームをどうぞ:
    

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

    Enter the new value, or press return for the default
            Full Name []: someone SUGIURA
            Room Number []:
            Work Phone []:
            Home Phone []: 
            Other []: someone@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 []: someone SUGIURA
            Room Number []:
            Work Phone []:
            Home Phone []: 
            Other []: someone@ep.sci.hokudai.ac.jp
    Is the information correct? [Y/n] Y
    
    
    < 正しい場合は Y , 間違っていれば n を入力します.
    

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



[1.3] ログイン方法

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

joho** login: someone
Password: (打ったパスワードは表示されない)
うまくログインできると以下のような待受け画面になります.
someone@joho**:~$ 
これが, 自分のホーム領域にログインし入力を受け付けている状態であり, Unix にログインして何らかの作業をする場合の出発点になります.

[1.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



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

問題がなければ, これでパスワードの変更作業は終わりです.元のパスワードに戻す場合は上記をもう一度繰り返してください.




[1.5] ログアウト方法

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

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

someone@joho**:~$ logout

または

someone@joho**:~$ exit

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

joho** login: 



次ページへ

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

最終更新日: 2018/04/13(村橋究理基) Copyright © 2000-2018 inex