第 3 回 Linux サーバー

本日の内容


このドキュメントは http://edu.net.c.dendai.ac.jp/ 上で公開されています。

3-1. Linux とは

OS

コンピュータの本来の目的は、目的の計算を行うためのソフトウェア(アプリケーションソフト)を 実行することです。 しかし、 コンピュータ資源を統一的に扱うためや、利用者の指示がしやすいようになど、 コンピュータの利用を手助けするための、ライブラリやサービスソフトが提 供され、それが多くのコンピュータで統一されると便利です。 そのために、開発されたのが Operating System です。

OSにおいて、システムの動作を制御する部分をカーネルと言い、 ユーザの操作に対応する部分をシェルと言います。 古くからあるのが文字を介して、コマンドの文字列を入力して操作する Charactor User Interface である対話型シェルです。 一方、近年ではGraphic User Interface のシェルも使われるようになって きました。 但し、簡便さや再現性の高さなど、サーバに対するシェルにはしばしば対話 型シェルが使われます。

現在サーバーOSとしてよく使われているのが Linux システムです。 これは、 Linus Torvalds が作ったカーネル Linux、 Free Software Foundation が作った GNU ソフト(Cコンパイラ、サービスプ ログラムなど)、 インストーラ、管理ソフトなどを組み合わせたものです。

3-2. CentOS7 の操作

特権モード

UNIX では、ファイル、ディレクトリに所有者、所属グループという属性が ある。 所有者、所属グループ、その他に対して、読み、書き、実行(rwx)が設定変 更ができる。 さらに、すべてのファイル、ディレクトリについて、読み、書き、実行の権 限があるただ一つの特権ユーザとして root というログイン名がある。

root はシステムの運用において大きな影響を及ぼすため、通常の運用では 使用せず、もっぱら設定の変更などの際に使用するべきである。 そのため、root でログインさせず、一般ユーザが状況に応じて特権ユーザ に昇格するコマンドを使って運用するのが一般的である。

特権ユーザになるコマンドは suである。 これは一般ユーザの環境を引き継ぐ。 特権ユーザとして設定された環境で昇格するには su -とする。 特権ユーザに昇格するには、 root のパスワードを入力する必要がある。

但し、スーパーユーザーのパスワードを共有するのが危険だと考える場合、 各ユーザがコマンドに特権モードを発動する sudo コマンドを 使う管理もある。 この場合、 sudo コマンドで、ユーザのパスワードにより、コ マンドが特権で実行できる。

さらに、sudo su で、ユーザのパスワードにより特権ユーザに 昇格できる。

ディレクトリ構造

UNIX 系の OS は唯一の根のフォルダ / (ルート)があり、そこに、ファイル やディレクトリが置かれる。 ルートにあるディレクトリの名前には歴史的な経緯から次のような意味付けが されている。

また、特殊な装置のI/Oやシステム状態などもすべてファイルに紐付けられ ていて、ファイルアクセスと同様に読み書きができるようになっている。

/bin
基本的なコマンド
/boot
起動用のファイル
/dev
デバイス
/etc
各種設定ファイル
/home
ユーザディレクトリ
/lib
各種重要なファイル
lost+found
迷子になったファイルの行き先(近年はほとんど使われない)
/proc
プロセスファイル。OSの状態などを知ることができる
/root
特権ユーザのホームディレクトリ
/sbin
特権ユーザ用のコマンド
/tmp
一時ファイル用領域
/usr
一般コマンド
/var
ログやドキュメントやキャッシュなど、頻繁に変更が起きるようなファ イルの集まり

ファイルのモード

ファイルには、所有者、所有グループ、その他の3段階において、それぞれ、 読み、書き、実行のそれぞれの権限を設定できるようになっている。 ls -l とすると rwxr-xr-x などと表示されるが、各三文字づつ がその権限に対応している。

ファイルの所有者やグループを変えるには chown コマンド、権 限を変えるには chmod コマンドを使用する。 なお、ディレクトリには実行権限がないとそのディレクトリに入ることはで きない。

vi

vi は古く(キーボードにカーソルキーが無い時)からあるスクリーンエディ タです。

vi の特徴的なことは、編集モード、コマンドモード、入力モード、検索モー ドと各モードが存在しています。 そして、デフォルトは編集モードになっていることです。 そのため、画面が出ても、キーボードを文字を押しても、その文字は入力さ れません。 編集モードから入力モードに移行するのに、何種類ものコマンドが用意され ています。 一方で、編集モードに戻るには Esc キーで戻ります。

以下の機能を探すと便利です。 vi はシステム管理者がシステムをいじるときに使用する標準的なエディタ なので、身につけておくべきでしょう。

  1. セーブして終了する
  2. セーブしないで終了する
  3. 行頭にカーソルを動かす
  4. 行末にカーソルを動かす
  5. 行末から入力を始める
  6. 文字列 abc にカーソルを進める
  7. 一文字消す
  8. 一行消す
  9. 今消したものを行として挿入する
  10. ファイルのすべての 123 を456 に変更する

3-3. 演習

演習3-1

Linux 標準教科書 7章

ログイン、アカウント

指定されたアカウント、アドレスでのログイン
Teraterm の ssh で接続し、指定されたアカウントとパスワードを入れ る
パスワードの変更
passwdコマンド
名前の入力
chfn
特権モード
sudo su -
ログアウト
exit

その他試すべきコマンド

  1. whoami
  2. who
  3. w
  4. cat /etc/passwd
  5. cat /etc/group
  6. cat /etc/shadow
  7. cat /etc/gshadow
  8. cat /etc/sudoers

演習3-2

Linux 標準教科書 3,4,5章

ファイル操作

  1. 空のファイルの作成(またはタイムスタンプの変更) touch ファイル名
  2. カレントディレクトリの表示 pwd
  3. カレントディレクトリの内容の表示 ls
  4. カレントディレクトリの内容を隠しファイルまで表示 ls -a
  5. ディレクトリの作成 mkdir ディレクトリ名
  6. カレントディレクトリの移動 cd ディレクトリ名
  7. ホームディレクトリへの移動 cd
  8. ページャーによるファイルの表示 more ファイル名, または less ファイル名
  9. マニュアルの表示 man コマンド名

演習3-3

Linux 標準教科書 6章

vi によるファイル作成

  1. vi test.txt
  2. まず、次のように画面を作る
    abc123
    def456
    ghi789
  3. 次に、以下のように画面を作る
    abc123
    def123456789
    ghi789
  4. 最後に次のようにする
    abc456
    def456456789
    ghi789
  5. 保存し vi を終了する
  6. cat test.txt で確認する

演習3-4

Wireshark を立ち上げ、 Linux サーバにログインするときのパケットの流れを観察しなさい。


坂本直志 <sakamoto@c.dendai.ac.jp>
東京電機大学工学部情報通信工学科