no29-30.jpg (26504 バイト)

    総「終」編

 

‘97年7月号

第29回 インスタント管理職

  本連載も残すところあと2回となってしまいました。今回はシステム管理について簡単に触れたいと思います。ファイルの許可属性の変更やディスクの増設などは、スタンドアロン/小人数で使用する場合にも必要な作業ですのでしっかり 覚えてください。

はじめに

 予想以上に長引いたネットワークの話「家族ダンランシリーズ」も何とかひと段落ついたので、今回は少しだけシステム管理の話をしてみます。本連載も次回の30回で区切りをつけたいと思いますが、その前にどうしても必要な話だと思います。この連載ではハードウェアの増設を何度も取り上げているので、システム 管理の話がはじめてというわけではありません。むしろ、システム管理の話は毎 回のように出てきていると言ってもよいほどでしょう。その中でもとくに、「proc で健康診断」と「心機一転春のLinux」の回は典型的なシステム管理の話でしたね。

 UNIXのシステム管理の話を本格的に始めたら、何冊もの本になってしまいます。基本的なシステム管理に絞っても分厚い本が簡単にできてしまいます。しかし、Linuxは個人利用にも適したOSで、多くの場合インストールしたその日から 普通の人が管理者をすることになります。そこで今回は、利用者が数人程度の比較的小規模なUNIXシステムを管理する場合のヒントを中心に話をしてみようかと 思います。悪意のあるユーザの攻撃に対処するために厳しい制限を科すというよ うな話はしませんが、それでも多くの注意点があります。

 もちろん、多くのLinux管理者が最初にするべき仕事はLinuxのインストールでしょう。この点は、メーカがインストールするのが一般的な商用のUNIXとも異なっています。おかげでインストールの話はHOWTO文書などのフリー文書にも、書店で売られている書籍にも詳しくされていますから、今回は取り上げません。

 なお、一般利用者としての個人環境の管理という話は以前、SoftwareDesign誌の Linux特集の中の「GNU世代の必須ソフトウェア選(基礎編)」でしました。これはもちろんシステム管理とも重なります。重要な話は繰り返しますが、できれば この記事も読んでみてください。 

特権利用者と利用管理者

 

 Linuxはマルチユーザシステムです。基本的に各ユーザは限られた権限のもとでコンピュータシステムを使うことができます。例外はスーパーユーザです。スーパーユーザは普通、rootという名前が割り当てられ、システムの管理などのために何でもできるユーザです。まぁ、何でもできると言っても、魔法のツエを振って実メモリを増やしたりはできないでしょうから、地道に稼いだお金やコネで手に いれてください。それでも、ハードディスクにファイルやパーティションを作って仮想メモリを増やすことはできます。また、コンピュータシステムのどのファ イルでも読み書きできるのはもちろん、すべてをきれいさっぱり消すこともできるパワーは強力です。よく考えるとMS-DOSやWindows、MacOSでは誰もがスーパーユーザです。誰でもシステムファイルを消してしまうことがあり得るという 点は重大な事実です。

 インストールの次に管理者がする仕事は一般利用者の管理です。普通は、管理者自身のアカウントを作ることからはじめます。管理者と言えども常にスーパー ユーザの立場で仕事をするべきではありません。誰でもうっかりミスをするものですから、スーパーユーザになって行う作業は必要最小限にするべきです。

 管理者としてはまず、ファイルアクセスの権限と利用者管理に重要なファイル (/etc/passwdと/etc/group)だけは知っておきましょう。

許可属性と/etc/passwd

 LinuxやUNIXで各ユーザを保護しているのはファイルの許可属性です。すべて のファイルは

・ファイルの所有者(u)

・ファイルの所属グループに属する利用者(g)

・その他の利用者(o)

の3種類のユーザに対して別々の許可属性を持っています。UNIXの入門書にもls -lの出力の意味の解説が出ているので、上の3種類のユーザに対してそれぞれ、読み(r)/書き(w)/実行(またはディレクトリへのアクセス権))(x)の属性までは 皆さんご存知でしょう。

 

 

[genkan]~ $ ls -l /etc/passwd

-rw-r--r-- 1 root root 678 Feb 20 22:57 /etc/passwd

 

         図1 /etc/passwdの許可属性

 

 

[genkan]~ $ ls -l /usr/bin/passwd

-r-sr-xr-x 1 root bin 19031 Aug 26 1996 /usr/bin/passwd

 

         図2 /usr/bin/passwdの許可属性

 

 しかしシステム管理者は、もう少し詳しく知っている必要があります。rwxのほ かにも2つの「sビット」と1つの「tビット」というのが重要です。

 sビットはコマンド実行時の「実効利用者」を変えるものです。たとえばパスワードを変更するコマンドは、パスワードを暗号化して格納したシステムファイ ル(/etc/passwd)を書き換える必要があります。かと言って、パスワードファイルを誰にでも自由に書き換えさせては複数ユーザの意味も許可属性の意味もありません。そこで、パスワードファイルは誰にでも読めるが、書き込めるのはroot だけという設定にしておきます。

 /etc/passwdは図1のままの状態でパスワード変更コマンド( /usr/bin/passwd)のほうに細工をします。パスワードコマンドに、誰が実行してもスーパーユーザが実行したかのようなパワーを与えることで、一般ユーザがパスワー ドファイルを書き換えるパワーを持たせるのです。具体的には、 図2のような許可属性にして置きます。

 図2を見ると、/usr/bin/passwdというコマンドの所有者はrootで、所有者の実行許可の部分がsになっているのがわかると思います。これが「setUIDが立っ た」状態です。グループや他のユーザに対する実行許可はxになっています。これで、passwdコマンドを誰が実行しても、rootが実行したと同じ権限が出るのです。 要するに、みんなに/etc/passwdを書き換えるパワーが与えられるのです。

 

 

[genkan]~ $ su

Password:

[genkan]/home/hiro # ls -l /usr/bin/passwd

-r-sr-xr-x 1 root bin 19031 Aug 26 1996 /usr/bin/passwd

[genkan]/home/hiro # chmod u-s /usr/bin/passwd

[genkan]/home/hiro # ls -l /usr/bin/passwd

-r-xr-xr-x 1 root bin 19031 Aug 26 1996 /usr/bin/passwd

[genkan]/home/hiro # chmod u+s /usr/bin/passwd

[genkan]/home/hiro # ls -l /usr/bin/passwd

-r-sr-xr-x 1 root bin 19031 Aug 26 1996 /usr/bin/passwd

 

       図3 /usr/bin/passwdのsビットをいったん無効に戻した様子

 

 sビットを有効/無効にするのには、他の許可属性を変更するのと同じchmodコ マンドを使います。試しに、/usr/bin/passwdのsビットを一時的に無効にして、さらに戻してしてみましょう(図3)。

 なお、これまでは所有者にsビットを立てる話をしましたが、同様に、所属グ ループにsビットを立てることもできます。その場合、そのグループの利用者と同じアクセス権が与えられることになります。

 ここで少し補足しておきますが、あるコマンドがrootに実行されたかのような 権限でファイルアクセスできるということは、誰がそのコマンドを実行してもroot が実行したと同じ結果になるというわけではありません。たとえば、passwdコマ ンドはrootが実行すれば誰のパスワードでも好きに変更できますが、一般の利用 者が変更できるのは本人のパスワードだけです。passwdコマンドは実行された場 合に誰が実行したのかを判断し、実行者によってふるまいが変わるようにプログ ラムされているのです。実際、sビットを立てられることを意識したコマンドはセキュリティに注意して書かれており、その多くは誰が実行したかを判断してふるまいを変えるようになっています。

 ちなみに、/etc/passwdにあるパスワードは暗号化されているので、読み込み 許可を与えることはまず問題にはなりません。このファイルには、パスワード以 外にもホームディレクトリやログインシェルなどの情報も書かれており、読み込み許可までなくしてしまうと、これを参照する多くのコマンドにsビット特権を与える必要が出て、システムとしての危険が増してしまうでしょう。sビットは部分的とはいえroot特権を与えてしまうので、利用は最小限にするべきです。

 暗号化されたパスワードファイルはかなり安全と言っても、絶対にパスワード がばれないというわけではありません。パスワードの暗号化は一方的な変換なので、普通の意味では解読できません。しかし入力を変えながら、出力が暗号と一 致するまで片っ端から候補を試せばいつかはばれてしまいます。

 これでわかるように、パスワードを注意深く選びさえすればかなり安全なものです。それでも不安という管理者には、シャドウパスワードシステムというもの もあります。この場合、/etc/passwdのパスワード欄はどのような入力とも一致 しない文字「*」になっており、暗号化されたパスワード自体は /etc/shadowなどの一般の利用者には読めないファイルに格納されます。4年くらい前に人気の あったSLS版Linuxパッケージでは標準でシャドウパスワードシステムが採用されていましたし、今でもSlackwareやRed Hatシステムにはオプションで用意されています。

 では、許可属性のtビットとはどのようなものでしょうか? tビットはスティッキービットとも呼ばれ、ファイルに対してとディレクトリに対してで意味が異なります。よく使われるのは/tmpなどの共用のテンポラリディレクトリに対してです。

図4を見てみましょう。

 

 

[genkan]~ $ ls -ld /tmp /usr/tmp /var/tmp

drwxrwxrwt 7 root root 1024 May 20 02:30 /tmp/

lrwxrwxrwx 1 root root 10 Nov 8 1996 /usr/tmp -> ../var/tmp/

drwxrwxrwt 2 root root 1024 May 19 12:33 /var/tmp/

[genkan]~ $

 

    図4 tビットはテンポラリディレクトリに立てられることが多い

 

 genkanでは/usr/tmp はシンボリックリンクですが、それ以外のテンポラリディレクトリの許可属性の最後がtになっており、tビット が立っている状態であるのがわかると思います。これらのディレクトリは、さま ざまなプログラムが一時的に使うので、誰でも書き込みできる必要があります。しかも、一時的なファイルを他人に消されてしまっては困ってしまいます。そこで tビットが使われるのです。tビットの立っているディレクトリのファイルは、ファ イルの所有者(普通は書いた本人)にしか消せなくなります。

 ファイルに対するtビットは最近ではあまり使われません。いったんtビットの 立った実行ファイルを使うと、次回は速くアクセスできるように高速なディスクやメモリの上などに取っておくのです。昔のUNIXでは、よく使うコマンドなどにスティッキービットを立てたりするのが一般的でした。しかしLinuxなどの現代的 UNIX系OSでは、実メモリのうち使われていない部分がディスクキャッシュとして働いており、いってみればすべてのファイルに対して賢いtビットが立っているようなものです。そこで、ファイルに対するtビットはほとんど使われなくなったのです。

 ちなみに、実行許可が立っていないファイルにsビットやtビットを立てると、 ls -lで表示される許可属性は大文字になります。使われることがほとんどないのですが、見ても驚かないように眺めてみましょう(図5)。

 

 

[genkan]~ $ echo > temp ←---------------- 改行だけのファイルを作る

[genkan]~ $ ls -l temp     実行許可がないかどうか確認

-rw-r--r-- 1 yyz zak 1 May 20 11:04 temp

[genkan]~ $ chmod u+s temp ←---------------- 所有者sビットを立てる

[genkan]~ $ ls -l temp

-rwSr--r-- 1 yyz zak 1 May 20 11:04 temp

[genkan]~ $ chmod +t temp ←---------------- tビットを立てる

[genkan]~ $ ls -l temp

-rwSr--r-T 1 yyz zak 1 May 20 11:04 temp

      =         =  ←----------------  これらはめったにお目にかからないでしょう

 

      図5 実行許可なしでsビットやtビットが立っている状態:

      ls-lの許可属性が大文字のSやTになっている

 

利用者の追加

 スーパーユーザでの作業は危険なので最低限にするべきだと言いました。宴会のお誘いのメールをスーパーユーザで読むようなことはすべきではないでしょう。 スーパーユーザの利用者管理関連の仕事としては、利用者の追加が基本的な作業になるでしょう。利用者追加の内容は、システムファイル /etc/passwdを変更し、ホームディレクトリを作り、そこに最低限の設定ファイル(.profileなど) をコピーしたりするのです。

 昔のUNIXでは上の通りに作業したものですが、さいわいLinuxシステムでの利用者の追加には、対話的に使えるスクリプトが用意されています。Linuxでよく使われるのはadduserとuseraddコマンドで、あなたのシステムにもどちらか一方は あると思います。マニュアルなどで使い方を確かめてください。

 adduserなどより多少素朴なのはvipwコマンドです。これは /etc/passwdを安全に書き換えてユーザ情報を編集するコマンドです。デフォルトではviエディ タを起動するようになっていますが、環境変数でEmacsを起動させるように変更することもできます。

 このコマンドがあるのは、パスワードファイルを普通に書き換えると危険だからです。たとえば、管理者がパスワードファイルを編集している間に一般利用者 がpasswdコマンドを実行すると、その利用者の変更は無効になってしまいます。 これでは、その利用者がログインできなくなってしまうかもしれません。また、パスワードの実体が他のファイルにあって、/etc/passwdだけを変更するだけでは システムに矛盾が出てしまう場合もあります。vipwもadduserも、このあたりの 対策がなされています。

 逆にadduserなどよりも今風なのは、X Window Systemを使った管理用のGUIツールです。Red Hatシステムは利用者追加を含め、ほとんどのシステム管理をこのようなGUIツールで行えるようになってます。たしかに便利な面もあるので使うのもよいでしょうが、具体的にどの設定ファイルが書き換えられているのかを理解しながら使ったほうがよいでしょう。Linuxの仕組みは、その気になればとこ とん理解できるようになっているのですから。

日々の管理

ディスクの整理

 Linuxを使っていて一番よくある深刻な問題は、ディスクが不足することです。 私の使っているkoneekoでもこれが最大の問題で、4年間で2度のディスク増設を しています。

 ディスク不足というのは実に厄介なもので、ディスクを増設すれば簡単に解決するというものではありません。理由は、ディスクに余裕があると不要なファイルを消さなくなるからです。これは私自身も含めて多くの人の習性だと思います。

そこでkoneekoの場合でも、ハードディスクを増設するのはディスクがいっぱいに なった段階ではなく、気楽に消せるファイルがなくなった段階で行っています。

 そもそも、Linuxにはどのくらいのディスクが必要なのでしょうか? 現在のkoneekoには私の本業の数値シミュレーションのデータなどが大量にあるので、合 計で5Gバイトのディスクがほとんどいっぱいです。それに対して自宅のgenkan は、Xも家族ダンランのサーバなども動かしていますが、使われているのは600M バイト程度ですから1GバイトのHDD1台で余裕があります。画像などの大きな データなどが大量にあるような状態でもない限り、個人利用には1Gバイトで十分 でしょう。

 どのディレクトリが大きなファイルを含んでいるのかを知りたい場合、私が好 んで使うコマンドは、

du -ks * | sort -n

などです。これで、サブディレクトリやファイルの大きさを小さい順に並べた一覧が得られます。大きい順にしないのは、サブディレクトリが多い場合に表示が流れてもよいようにと考えてのことです。これをそのままbashのaliasにしてもよいですね。

alias dsk='du -ks * | sort -n'

しかし、このままのコマンドではNetscapeのキャッシュディレクトリなど、ピリ オドで始まるファイルを見落としてしまいかねませんから、

alias dsk='du -ks * .* | sort -n'

のほうがよいかもしれません。さらに汎用性を考えて、引数をとるbash関数にし て

dsk() { du -ks $* | sort -n }

としておくのもよいでしょうし、オプションをとるようなもっと凝ったコマンドスクリプトにしてもおくのもよいでしょう。注意深く自動化を進めれば管理作業のミスが減ります。

 不要ファイルをみつける強い味方には、findコマンドがあります。findは実に 多機能のファイル探しツールで、みつけたファイルに対して指定したコマンドを 実行させることもできます。/usr/tmpなどで長い間使われていない個人ファイ ルをみつけて消したり、今週変更のあったファイルをみつけてバックアップした りするのに使われるのです。慣れるまでは多少使いにくいコマンドですが、管理 作業にはとても便利です。指定された時刻にコマンドを実行してくれるcronと組 み合わせた完全自動化にもfindがよく使われます。誌面の関係で使い方の詳しい 説明はできませんので、オンラインマニュアルや『Running Linux』などを参考にしてください。

 ディスクを節約する具体的な道具は、ファイル削除のrmとファイル圧縮のgzip です。削除のほうは説明も不要でしょうが、圧縮のほうは多少コメントしておきます。

 従来のUNIXで一般的だった圧縮プログラムはBSDのcompressです。compress は最近のUNIX系システムには必ずあると言ってよいでしょう。compressで圧縮し たファイルは拡張子「.Z」を付ける習慣になっています。gzipはGNUプロジェク トのプログラムで、すべてのUNIX系システムにあるというわけではありません が、GNUと深い関係にあるLinuxシステムではまず間違いなく用意されているで しょう。

 gzipは一般にcompressよりも圧縮率が高い上に完全にフリーです。FTPサイトなどにあるUNIX関連のファイルのほとんどすべての圧縮に使われていますから、名前や基本的な使い方はご存知の方も多いと思います。gzipで圧縮したファイルは、 gzip、gunzip、GNU版zcatで展開できます。実は、この3つは同じ実行ファイルに 3つの名前を与えたものです。lsコマンドを使って正体を確かめてみてください。

 gzipは、オプションで圧縮率や圧縮速度を上げたりできます。詳しくはLinux特 集の「GNU世代の必須ソフトウェア選」でも説明しましたので参考にしていただ きたいと思いますが、私はbashの環境変数にgzip用の

export GZIP='-9vN'

という設定をして使っています。

 ディスクの整理に必要なのは、削除と圧縮だけではありません。ファイルをまとめておくことも大切です。このために広く使われているのがtarコマンドです。

このコマンド名は、テープアーカイブ(Tape ARchive)から来ていると思われ、もともともとはテープドライブにまとめて書き込むためのコマンドです。そのため、 現在のtarコマンドでも書き込み先を指定しないとテープに書こうとする仕様に なっています。今ではファイル群をまとめて1つのファイルに書き込むために使わ れることのほうが多いでしょうけどね。FTPサイトでお馴染みのファイルは、ほと んどがtarでまとめた上にgzipで圧縮したファイルで、拡張子が「.tar.gz」や「.tgz」 となっていると思います。「.tgz」という名前はMS-DOSユーザの便を考えて使わ れている拡張子ですが、違いはありません。tarでまとめてcompressで圧縮したファ イルには「.tar.Z」という拡張子を使いますが、GNU版のzcatがあれば、これを含 めた3種類の拡張子のファイルを区別せず、図6のような手順で展開 できます。この際、第1回でも紹介したbashの行編集機能が便利に使えます。

 最近のLinuxのFTPサイトなどでは、tarとgzで処理したファイル以外に「.rpm」 という拡張子のファイルもよく目にします。これは主にRed Hatシステムで使われる形式のいわゆるRPMファイルです。RPMは単純にまとめて圧縮したtar+gz

 

 

[genkan]~ $ zcat linux-2.0.tar.gz | tar tvf - ←内容を確認

drwxr-xr-x root/root 0 Jun 9 05:48 1996 linux/

-rw-r--r-- root/root 9589 Jun 7 04:55 1996 linux/Makefile

drwxr-xr-x root/root 0 Jun 9 05:36 1996 linux/fs/

-rw-r--r-- root/root 5558 Feb 17 02:19 1996 linux/fs/stat.c

-rw-r--r-- root/root 3224 May 8 11:28 1996 linux/fs/Makefile

(中略)

[genkan]~ $ zcat linux-2.0.tar.gz | tar xvf - ←実際に展開

drwxr-xr-x root/root 0 Jun 9 05:48 1996 linux/

-rw-r--r-- root/root 9589 Jun 7 04:55 1996 linux/Makefile

drwxr-xr-x root/root 0 Jun 9 05:36 1996 linux/fs/

(以下略)

 

          図6 GNU版zcatを使っての、圧縮されたtarファイルの展開:

圧縮されたtarファイル(拡張子が「.tar.gz」や「.tgz」や「tar.Z」)のファイルを区別せずに展開できる。以下の手順だと間違えて元のtarファイルを消してしまう心配もない。

形式とはちがい、システムの部分的なアップデートに役立つ情報なども含めてま とめたファイルです。これらのファイルは、Red Hat以外でもrpmコマンドを導入しさえすれば利用できます。

ディスクの増設

 メモリやディスクの増設は意外に簡単です。64Mバイトまでのメモリなら挿すだけですし、それ以上のメモリでもカーネルに値を知らせるだけです。ディスクの場合は、まずは物理的につなぎます。いわゆるIDEなら4台まで、SCSIならイ ンターフェース1枚につき7台までのデバイスは簡単につなげます。SCSIの場合 にとくに注意することは、安物ケーブルを使わないこととケーブルの両端のター ミネータを忘れないことです。とくに、一部のSCSIインターフェースカードは ケーブルやコネクタに非常に敏感なようですから、インターフェースを選ぶ際は SCSI-HOWTOを参考にして慎重に選んでください。

 これが済んだら、Linuxを起動すれば自動認識されます。ただし、認識されたか らといってすぐに使えるというわけではありません。fdiskでパーティションを切り、mkfsでフォーマットして第1段階の準備をします ※1。fdiskを使ってパーティションを切る作業は、インストールの解説書類を参考にして行ってください。

 ちなみに、現在Linuxで最も一般的なファイルシステムの種類は第2拡張ファイ ルシステム(ext2)です。Linuxで使えるものはほかにも多数ありますが、他のOS と併用するのでなければext2ファイルシステムにしておくのがよいでしょう。 mkfsを使うときにはオプション「-t ext2」を付けます。なお、次に述べる/etc/fstabへの追加を先にすませておけば、mkfsをオプションなしで使っても適切なファイルシステムが選ばれます。

 いかにも増設らしい作業は、/etc/fstab の変更です。このファイルはどのディスクをどのディレクトリにマウントするかを指定します。 /etc/fstabは起動時などに自動的に実行されるmount -aコマンドで参照され、そこに書かれている指示に従ってパーティションなどがマウントされます。ディスクを増設するだけならこのファイルに新しい行を加えてゆくだけです。もちろん、その場合には、マウントするためのディレクトリをあらかじめ用意しておく必要があります。

※1 めったにないでしょうが、買ってきたディスクによってはfdiskの前にいわゆる物理フォーマ トが 必要なこともあります。IDEディスクの場合は専用のソフトを使うことになりますし、SCSIの場合にはSCSIインターフェースカードに付属のユーティリティソフトを使うのが一般的なようです 。

 

 たとえば新しいディスクが/dev/sdb1 であるとしましょう。この名前は第2番目のSCSIディスク(sdb)の第1パーティションを示しています。sdがSCSIのディ スクをを表わし、bの部分が2番目のディスクを、数字の1が第1パーティションを表わします。ちなみにIDEの第3ディスクの第5パーティションなら /dev/hdc5となります。このあたりの表現はLinux独自なので注意してくさい。

 さて、話を戻して/dev/sdb1を/usr2というディレクトリにマウントしたい とします。まずは従来のディスクに/usr2を作ります。具体的には、

mkdir /usr2

ですね。それから/etc/fstabにのような行を加えます。その上で

mount -a

というコマンドを実行すれば/usr2として新しいディスクが使えるようになります。「mount /usr2」でも同じ結果になります。

 なお、ここではデフォルト属性でマウントしていますが、 /etc/fstabに書くようなmountコマンドのオプションには便利なものがたくさんあります。とくに、 ファイルごとの許可属性の設定ができないMS-DOSパーティションや、一般利用者 にCD-ROMを入れ換えさせるための設定などが必要な人もいると思いますので、一 度は「man mount」でマニュアルページを読んでみるとよいでしょう。

 

/dev/sdb1              /usr2                    ext2                         defaults

リスト1 ディスク増設に伴う/etc/fstabへの追加行の例

 

バックアップ

 多くの利用者を抱えたシステムでは、バックアップが管理者の重要な作業です。 しかし、小人数で使うLinuxの場合には、個人のファイルは各自がバックアップを とるべきです。システム管理者は、/etcなどの限られた設定ファイルの面倒をみ ればよいことになります。

 バックアップ用のデバイスとして伝統的に使われて来たのが磁気テープです。安 くて容量が大きいからです。数Gバイトのディスク全体のバックアップが欲しい なら、DATのテープを使ったものを使うのがよいでしょう。しかし、私はシステ ム全体のバックアップはとっていません。自分が直した部分以外はインストール し直せばよいのですから。

 バックアップが必要なのは作業ディレクトリやシステムの設定ファイルですが、 私の場合、これらのバックアップは、バックアップ用につないであるハードディ スクに置いています。要するに2ヵ所に同じデータを用意するようにしているので す。IDEのハードディスクは安いですし、テープよりもはるかに高速で便利です。 基本的なバックアップ作業は、単純にファイルをコピーするだけで、作業ディレ クトリなどをまとめて保存する場合でも、tar.gzファイルを作ってcpでコピーする ことになります。圧縮しないでバックアップを取る場合にはGNU版のcpにいくつ かのオプションを付ければまず十分ですし、tarやcpioを使ってもよいでしょう。 詳しい使い方はマニュアルページなどで調べてください。テープを使う場合には mtコマンドも見てくださいね。

 大きな画像ファイルなどをたくさん持っているのでなければ、バックアップら しいバックアップ作業は、フロッピーディスクでも十分に行えるでしょう。/etcな どをまとめてtar.gzファイルを作り、DOS形式のディスクにmcopyコマンドでコ ピーしておくだけでも十分に実用的です。フロッピーをext2形式で作成してマウ ントし、cpでコピーしてもよいでしょう。

 多量の画像ファイルや数値計算のデータがある人は、メディアの安いテープを 使うのもよいでしょう。しかし、ほかにも便利なデバイスがありますので、 表1に紹介してみました。私自身はバックアップ用に用意したハードディスクを補うよ うにCD-R(CD-ROMライタ)を使っています。

デバイス          特徴                                      

 ハードディスク     高速で楽、IDEドライブならそれなりに安い

 CD-R          メディアは上書きができないが格安(650Mバイトで1,000円)で普通のCD-Rドライブでも

               読める。ドライブは多少高めで書き込みに時間がかかる。

光ディスク(MO,PD)       最新の高密度ドライブは高めだが、メディア価格も便利さも中庸を得ていて、MOは標準価格

               もしっかりしている。ただしMOもPDも日本以外ではあまり普及していない。

JAZ                           1Gバイトのハードディスクをリムーバブルにしたもののようで便利だが、ドライブもメディア

               高め

ZIP                            容量は100Mバイト程度で小さいが、フロッピーに代わる手軽なデバイスとして急速に普及して

               いる。LinuxではSCSI版もパラレルポート版も使える。

表1 大きなファイルのための現代的バックアップデバイス:

DATや8mmビテオを使うテープドライブもよいですが、上のようなデバイスを考えてみるのもい かがでしょう?

 

ログファイルを眺める

 日常のシステム管理で一番大切な作業は、システムの状態を知っておくことでしょう。管理者としてはときどきtopを実行するという習慣も大切です。いかにも 管理者らしい監視作業はログファイルに目を通すことです。ログファイルを眺めれば、誰が何をどのくらい使っているのか、不審な侵入者はいないか、ハードディ スクが弱ってきてエラーが出はじめていないかなど多くの情報が得られるものです。

 Linuxのログファイルには、さまざまなコマンドやハードウェアのエラー、電子 メールのやりとり、ログインやネットワーク関連サービスの記録、cronコマンドの結果報告などの多くの情報が、ある程度整理されて記録されます。このような 記録の多くは昔のSlackwareなら/var/admというディレクトリに、Red Hatなら/var/logというディレクトリに集められています。多くのログファイルは デーモンとして動いているsyslogdコマンドの管理下で作られます。どのファイルに何を記録するかなど、syslogdの振る舞いを決める設定ファイルが /etc/syslog.confです。syslog.confの解説はオンラインマニュアルにありますので、 「man syslog.conf」を試してみてください。マニュアルページにはコマンドの 説明だけでなく設定ファイルの書式の説明もあることを覚えておいてください。

 なお、大きなシステムの管理をする場合にはログファイルも煩雑になりがちで す。そこで、管理用のスクリプトを用意して必要な項目がすぐにみつかるように工夫をこらすのが一般的です。管理に慣れてきたら、少しずつでも自動管理やログファイル監視スクリプトの実験をしてみてください。

 

■参考文献

@『Software Design』の記事

・'95年4月号:「Linux活用メモ」第8回「procで健康診断」

・'95年5月号:「Linux活用メモ」第9回「心機一転春のLinux」

・'96年6月号:特集「すみからすみまでLinux(テクニカル編)」第2章「GNU世 代の必須ソフトウェア選」

 以上、いずれも山崎康宏著

A『Running Linux〜導入からネットワーク構築まで』/Matt Welsh、Lar Kaufman共著/オーム社

 導入だけでなくプログラミングやシステム運用なども扱っている総合的解説書。

B『Run Run Linux』第2版/はねひでや、やまだあきら、あべひろのぶ共著/ アスキー

 SlackwareとJEの導入や初期設定が詳しい。

C「HOWTO」文書群

 LDPプロジェクト作成、JFプロジェクトによる日本語訳が   http://jf.linux.or.jp/JF/ からたどれる。Linuxのシステム管理を扱ったフリーの書籍は英語版が執筆作 業中。

 

第29回へのコメント

「特に必要なコメントはありません」と言っても構わないのですが、 まずは宣伝。管理者や中級以上の利用者に便利な本が出ました。

●『Linuxクイックリファレンス』/Jessica Perry Hekman・O'Reilly

&Associates, Inc. 共著/山崎康宏・山崎邦子・砂畑浩樹共訳/

オライリージャパン発行

有名なUNIX in a NutshellのLinux版で、一般利用者にも管理者にもさっと引ける簡潔なマニュアルです。日本語版は翻訳者の趣味で、bashやmule/emacsの話が詳しくなっています。

それから、はじめにでも触れている『GUN世代の必須ソフトウェア選』は技術評論社の『Linuxパワーガイドブック』/山崎康宏ほか著に収録されています。

では、本題です。以下では、少しだけネットワークのセキュリティ関連の話をしておきます。LinuxやUNIXの管理者としてはさけて通れない話題でしょう。

最近のLinuxパッケージは、便利さに重点を置いて作られています。 特にRed Hat版などは便利なもので、いくつかの質問に答えてインス トールを済ませると、登録利用者向けのtelnetやftpはもちろん、一 般向けのHTTPやanonymous ftp などのサービスも自動的に始まります。基本的な安全対策は、本連載中でも第26 回にしてあるので、しっかりと実行してください。とくに、インターネット向け にサービスを提供している人は、実際に、誰にどのようなサービスを提供しているのかをきちんと把握してください。

なお、ソフトウェアにはバグがつきものです。これは、Linuxなどの フリーソフトに限らず、大手のメーカ製のソフトでも同じ事です。 NTサーバのセキュリティ上の不具合は特に有名ですが、メーカ製の UNIXはもちろん、Linuxシステムにも問題点が見つかることがよくあ ります。

 Linux関連のセキュリティ情報を専門に集めたサイトLinux Security WWW ( http://www.aoy.com/Linux/Security/ )もあります。さらに一般には、 CERT ( http://www.cert.org )という組織が公開している様々なソフトウェア の問題などのレポートに目を通しておくことが必要と言えるでしょう。これらを見ると、がっかりする程多くの問題点が頻繁に見つかっていることがわかると思います。ソフトウェアの安全性の実情と言うのはこの程度なのです。よくよく考えてみると、ソフトウェアに限らずとも、世の中にはセキュリティ面での問題だらけですよね。

 最近では、Red Hat版のLinuxシステムを使っている人が多いと思います。Red Hatは、自社のWebサイト( http://www.redhat.com )で頻繁に バグ情報(errataと呼ぶ)を公開していますし、専用のメーリングリストも用意しています。単に「◯◯が動かないと」いう類の情報だけではなく、セキュリティ関連の問題を修正するための情報も頻繁に提供されますから、Webページで公開している errata

( http://www.redhat.com/support/docs/errata.html  )には頻繁に目を通すようにする必要があります。不具合対策を頻繁に公開するということは、不具合自体を世界に知らしめる効果もあるわけです。管理者たるもの素早い情報収集が必要です。

 例えば、見知らぬ人の攻撃だけに対策しても、マシンにアカウントのある「内部」からのアタックの可能性を許してしまうと、何らかの理 由で誰かのパスワードが盗まれたら終わりです。自分のマシンのつながっているネットワークを流れるパスワードを盗むのは簡単です。芋づる式にパスワードを破られて行くというのは実際にある話です。特に、インターネット上にパスワードを流すような場合には、使い捨てパスワードや暗号化パスワードを使うなどの対策をすることが望ましいと思います。