Unix practice
Unix 実習

今回からはハードディスクにインストールされた OS を起動して使用する.PC に何も接続せずに 電源を投入し,カーソルキーで Linux boot を選択し, Enter キーを押せ. ブートローダによる選択画面が表示されるので カーソルキーで午前クラスは

YAMAMOTO AM, Ubuntu

午後クラスは

YAMAMOTO PM, Ubuntu

を選択し,Enter キーを押して Ubuntu を起動せよ.

午前クラスは nauser, 午後クラスは nauser PM を選択し, 初回授業で連絡したパスワードを入力し,ログインせよ.

ユーザ

一般ユーザの追加

PC には管理者ユーザとして nauser が登録されている状態になっている.Linux など多くの OS では 誤って他のユーザのファイルを消したりしないように利用者ごとに 専用のユーザを登録し,ファイルの書き込み権限等をコントロールしている.

班のすべてのPCに班全員のユーザを作成する.以下の順に作業を行え.

  1. メンバー全員が自分のログイン名とパスワードを決める. ログイン名は半角英数字の系列で,英字から始まるものとせよ. パスワードは他の班員にも知らせるため,この実験だけに使う ものにせよ.(大事なパスワードを使い回してはいけない) 欠席者のログイン名,パスワードは出席者が決めよ.
  2. 全メンバーのログイン名,パスワードの一覧を作り,班の全員で共有せよ.
  3. 全ての計算機について以下の操作を行え.
    1. 「システム」→「システム管理」→「ユーザとグループ」 を選択し「ユーザ設定」ウィンドウを開け.
    2. 「追加」ボタンを押せ.管理者パスワードを求められたら ログインしているユーザのパスワードを入力せよ.
    3. 「名前」欄は自由に記入してよい. 一人目について「ユーザ名」欄に用意したユーザ名を記入して. 「OK」ボタンを押せ.
    4. 「新しいパスワード」欄にパスワード,「パスワードの確認」 に繰り返し同じパスワードを入力せよ. 推測されやすいパスワードを入力すると 警告が出る.担当者が警告に従って新しいパスワードを考え, やり直せ.パスワードを変更した場合,班全員に連絡せよ.
    5. この実習では登録したユーザで計算機管理を行なうため, 登録したユーザ全員に管理者権限を与える.ユーザ登録後, そのユーザを選択した状態で「高度な設定」ボタンを押し, 「ユーザの高度な設定の変更」ダイアログの 「ユーザの権限」タブを押し, 「システムの管理者である」にチェックを入れて「OK」を押す.
    6. これを全員分繰り返せ.終了すれば「閉じる」を押してユーザ設定 を終了せよ.

上記の操作は「ターミナル(端末)」からも実行できる ユーザを追加するコマンドは useradd, パスワードを設定するコマンドは passwd である.多数のユーザを登録する場合はループを使ったスクリプトなどで 一括処理できるのでこの CUI を使った方法のほうが有用である.

作成したユーザでのログイン

一旦ログアウトし,自分のユーザ名でログインする.ログアウトは 画面右上のアイコンから「ログアウト」を選択して行なう.

ログアウトし,ログイン画面に戻れ. 作成したユーザ名を選択し,パスワード入力画面でパスワードを入力せよ.

ログインできることを確認したら一旦ログアウトせよ. 班内で座席を替え,他の班員にログインしてもらう. ログインした学生は前回実験と同様 gedit で自己紹介文を書いてもらう.

自己紹介を書いたユーザは,自分のホームディレクトリに text1.txt というファイル名で保存する. 「フォルダの中に保存」の表示がそのユーザのホームディレクトリになっていることを 確認し,「名前」を text1.txt として保存せよ.

gedit を終了し,ログアウトしてもらった後,全員元の座席に戻れ.

自分の名前でログインせよ.

以降の実験は自分のユーザ名でログインした状態で行え.

「ターミナル(端末)」(アプリケーション → アクセサリ → 端末)を起動し, pwd コマンドで自分のホームディレクトリにいることを確認せよ.

cd .. コマンドでディレクトリを一段階上がり,ls コマンドで 他人のホームディレクトリがあることを確認せよ. 他人である先ほどファイルを作ってもらったユーザのディレクトリに 移動できるか,ファイルを読めるか,ファイルを書けるか確認せよ.

システムのアップデート(参考)

この授業では受講者はシステムのアップデートを行わずに使用する. 自分のPCで使用する場合は以下の手順で適宜アップデートを行う.

「システム」「システム管理」「アップデート・マネージャ」を起動し, 「再チェック」「アップデートをインストール」の順に実行する. パスワードを聞かれたら ログインしたユーザのパスワードを入力すればよい.

この授業では計算機室管理者がアップデートを行うので受講者はこの 作業を行わない.

ホスト名

各計算機はホスト名と呼ばれる計算機の名前 を設定できる.初回授業で説明したように, 午前クラスは na-1XX (XXはPCのキーボード左上のシールの下2桁), 午後クラスは na-2XX とする. ホスト名を設定,確認するコマンドは hostname である. hostname コマンドを引数なしで実行すると現在設定されている ホスト名が出力される.ターミナルを開いて hostname コマンドを 引数なしで実行し,確認せよ.

ホスト名を設定するには hostname コマンドの引数としてホスト名を 与える.この場合はスーパーユーザ権限が必要なのでターミナルから sudo hostname na-XXX と入力せよ. (XXX は自分のメモリ番号に応じて変える) 設定が成功したかどうか,引数なしのhostnameコマンドで確認せよ.

ホスト名をつける操作はこの一回だけでよい.

オンラインマニュアル

Unix コマンドについて調べたい場合,Web で検索するのは 手軽ではあるが, OS のバージョンにより同じコマンドでも 細かい仕様が違う可能性がある. Unix では標準でオンラインマニュアルが実装されているので, 実際に使う計算機にログインし,オンラインマニュアルを 利用して調べることで仕様する計算機のバージョンでのコマンドの 仕様を確実に知ることができる.

この授業で使用する Ubuntu のバージョンではインストール直後は 英語版の man のみが利用できる状態になっている.以下のコマンドにより 日本語版の man が利用できるようになるので実行せよ.

jtXXXX0b@na-160% sudo apt-get install manpages-ja

sudo からパスワードを聞かれたらログインしたユーザのパスワードを入力せよ.

以下のように入力し, オンラインマニュアルのコマンド man を利用して pwd コマンドについて調査せよ

jtXXXX0b@na-160% man pwd

man の操作では,スペースキーで1ページ送り,b で1ページ戻し, カーソルキー上下で1行の進み,戻りができる. man を終了するには実行中にqを押せば良い.

ユーザー情報

現在登録されているユーザの情報を /etc/passwd というファイルで確認することが できる.ターミナルで /etc/passwd の内容を表示させ (cat を使え) 登録したユーザ名が 存在することを確認せよ.

/etc/passwd は管理者でなくとも読む事のできるファイルである. 過去にはユーザのパスワードを暗号化したものを保存するファイルであったが, セキュリティの問題から現在は別のファイルに保存されている. /etc/passwd ファイルのフォーマットはコロンでフィールドを区切るものである. 1 番目の要素がユーザ名,3 番目の要素がユーザ ID, 6 番目がそのユーザのホームディレクトリである. 今回作成したユーザ名全てについてこれらを調べよ.

grep は多くの行からなるファイルから,指定したパターンに一致する行だけを 表示するコマンドである.今回の場合,自分が作成したユーザ名が user1 であれば,grep user1 /etc/passwd で /etc/passwd ファイルのうち user1 という文字列を含む行のみを出力する. grep は膨大なファイルから必要な情報を探すのに利用される.

今回作成した管理者権限を与えたユーザとは異なり,システムには 最初から固有の管理者専門のユーザが設定されている.この 特別なユーザのことをスーパーユーザと呼び,ユーザ名は root, ユーザ ID は 0 である.grep を使って /etc/passwd ファイルから 必要な行を抜き出して確かめよ.

パーミッション

オーナーとグループ

共同でソフトウェアを開発している場合などで, 自分が書いたソースファイルに対して,

  1. 自分はファイルへの読み書きを許可したい,
  2. 共同開発者にはファイルを読ませることは許可するが,書き換えは許可しない
  3. 共同開発者以外には読み書きの両方を許可しない.

というようなレベルごとに異なる許可設定をしたい場合がある. Unix 系 OS ではこれを実現するためにグループという概念が導入されている.

グループはシステムに登録されたユーザの集合で,一人のユーザは複数のグループに 参加できるがユーザにとってメインとなるグループ(プライマリグループ) は一つである.

システム上の全てのファイル,ディレクトリには所属するユーザ(ファイルのオーナー) と所属するグループ(ファイルのグループ)が設定されている.

各ファイルについて,1.読むことを許可するか,2.書き込むことを許可するか, 3.実行ファイルとして実行することを許可するか,について, A.そのファイルのオーナー B.そのファイルのグループのメンバー C.それ以外, に対して別々に設定できる.この属性情報をパーミッションとよぶ.

例えばあるソフトウェアの開発に関わるユーザ hiroshi, keisuke, naoki を あらかじめグループ developer に所属させておく.hiroshi のプライマリグループ が developer であれば通常の設定では hiroshi が作成したファイルの オーナーは hiroshi, ファイルのグループは developer になる. このファイルのパーミッションを

オーナー
読み出し許可,書き込み許可,実行不可
グループ
読み出し許可,書き込み不可,実行不可
その他
読み出し不可,書き込み不可,実行不可

に設定しておくことで,最初に述べた

  1. 自分はファイルへの読み書きを許可したい,
  2. 共同開発者にはファイルを読ませることは許可するが,書き換えは許可しない
  3. 共同開発者以外には読み書きの両方を許可しない.

設定にできる.

ls -l

-l オプションつきの ls コマンドでファイルのオーナー,グループ,パーミッションを確認できる.

/etc/passwd ファイルに対して ls -l を実行せよ.以下のように表示されるはずである.

-rw-r--r-- 1 root root 1714 2010-04-23 10:56 /etc/passwd

まず,root root の部分は左がファイルのオーナー,右がグループを 表す.このファイルの所属オーナーは root ユーザーで, 所属グループは root (こちらは root という名前のグループ)であることが わかる.

最も左に表示される - は /etc/passwd がディレクトリではなくファイルであることを示す. ディレクトリであればこの部分は d となる(ls -l / を実行して確認せよ) その次からの 9 文字 rw-r--r-- がこのファイルのパーミッションを表す. これは 3 文字づつ区切って読み,左から 3 文字がファイルのオーナーに対する パーミッション,次の 3 文字がファイルの所属グループの構成員に対するパーミッション, 残りの 3 文字がその他へのパーミッションである.

次に 3 文字に分割したあとの読み方を説明する. 例えばこのファイルのオーナーへのパーミッションは rw- である. これは左から読み出し(r:許可, -:不可),書き込み(w:許可, -:不可), 実行(x:許可, -:不可)についての 状況を表す. 読み出しが許可されていれば 3 文字のうち左の文字は r, されていなければ - となる. 書き込みが許可されていれば中央の文字は w, されていなければ - となる. 実行許可については最後の文字は x, されていなければ - となる.つまり rw- は読み出し許可,書き込み許可,実行不可を意味する.

グループと他人については同じパーミッションが設定されており, 読み出し許可,書き込み不可,実行不可となっていることがわかる.

シャットダウン

システムを終了するには画面右上の ubuntu メニューから「シャットダウン」 を選ぶ.

第 2 回課題「Unix 実習」 を提出せよ.

レポート体裁について

fn キーを押しながら prt sc キーを押すことでスクリーンショット を得ることができる.

自分が持参したUSBメモリは挿入することでデスクトップに表示され, 使える状態になる.取り外す前には必ず取り出し操作を行わなければならない. 取り出し操作はUSBメモリのアイコン上で右クリックから 「取り出す」で行える.


Updated in April 22, 2013, index.html, Yamamoto Hiroshi