図1 ユーザーをグループ単位で管理する
図1 ユーザーをグループ単位で管理する
[画像のクリックで拡大表示]
図2 newsusersコマンドを使ったユーザー登録<BR>あらかじめ登録するユーザーをパスワード・ファイル(/etc/passwd)と同じ形式で設定用のテキスト・ファイル(設定ファイル)に記述しておくと,その設定に従ってユーザーとパスワードを自動登録できる。設定ファイルには,パスワードの文字列がそのまま入っているので,自動登録後の取り扱いに注意する。
図2 newsusersコマンドを使ったユーザー登録<BR>あらかじめ登録するユーザーをパスワード・ファイル(/etc/passwd)と同じ形式で設定用のテキスト・ファイル(設定ファイル)に記述しておくと,その設定に従ってユーザーとパスワードを自動登録できる。設定ファイルには,パスワードの文字列がそのまま入っているので,自動登録後の取り扱いに注意する。
[画像のクリックで拡大表示]
図3 passwdコマンドとシェル・スクリプトを使って大量のユーザーを一括登録する&lt;BR&gt;大量のユーザーを一括登録し,暫定的なパスワードを設定するときに使うと便利である。
図3 passwdコマンドとシェル・スクリプトを使って大量のユーザーを一括登録する<BR>大量のユーザーを一括登録し,暫定的なパスワードを設定するときに使うと便利である。
[画像のクリックで拡大表示]
図4 初期パスワードに乱数を使いたい場合はmkpasswdコマンドを利用する
図4 初期パスワードに乱数を使いたい場合はmkpasswdコマンドを利用する
[画像のクリックで拡大表示]
図5 使用可能なディスク容量を制限するquota機能を使ってユーザーが使えるハード・ディスク容量を設定する&lt;BR&gt;quota機能を有効にするために,/etc/fstabファイルで対象のファイル・システムのマウント・オプションに,usrquotaを追加する。
図5 使用可能なディスク容量を制限するquota機能を使ってユーザーが使えるハード・ディスク容量を設定する<BR>quota機能を有効にするために,/etc/fstabファイルで対象のファイル・システムのマウント・オプションに,usrquotaを追加する。
[画像のクリックで拡大表示]
図6 ハード・ディスクを増設するときの手順&lt;BR&gt;fdiskコマンドでパーティションを確保し,mke2fsコマンドでファイル・システムを作成する。最後に,mountコマンドを使って追加したファイル・システムをマウントする。
図6 ハード・ディスクを増設するときの手順<BR>fdiskコマンドでパーティションを確保し,mke2fsコマンドでファイル・システムを作成する。最後に,mountコマンドを使って追加したファイル・システムをマウントする。
[画像のクリックで拡大表示]

 効率よく多くのユーザーやそれにまつわるディスク・スペースを管理するためには,なるべく手順を自動化しておくことが大切だ。また,万が一に備えてシステムの異常発生をいち早く認識したり,復旧できるように日ごろから準備しておこう。

 サーバー用途のシステムや複数ユーザーが共有する開発用システムでは,システムが使えなくなったときの被害は個人でLinux搭載機を使っているときと比べれば格段に大きくなる。そのため,システムを定期的に監視して異常がないかどうかをチェックすると同時に,万が一システムがダウンしたときの対処方法を手順化しておきたい。システム監視では,System V系の商用UNIXでよく使われているsar(System Admin Reporter)もLinux上で標準装備されつつあるので,それを活用するのも良いだろう。

 システムの異常時に備えてサーバー管理者が気を配るべきなのは,システムが安定して動作しているときの状態である。正常運用時からログをチェックし,ログの内容を把握しておけば,ログ内に異常な記録が残っていたときにそれが見つかりやすい。

 また,正常運用時のプロセスや主メモリーの利用率をメモしておけば,それを目安にしてプロセスの暴走を見つけられる。システム管理者としての役割をきちんと果たすためには,普段からの地道な経験の積み重ねが大切だ。

大規模なユーザー管理
管理手順を自動化する

 サーバー用途では,複数のユーザーがシステムを利用することになる。こうした複数のユーザーを効率良く管理するには,運用ポリシーの策定がとりわけ重要である。具体的には,社員に与えるユーザーIDの与え方にルールを決めたり,ユーザーをグループ単位で管理する(図1[拡大表示])。

 例えば人事異動で,ある社員が部署から離れたので,その社員が使っていたユーザーIDを新たに部署に配属された社員に与えたとしよう。その際,前の社員のファイルがサーバーに残っていた場合には,新社員がそのファイルを操作できてしまう。こうした事態を避けるためにも,ユーザーIDを社員番号と同一にするなどして,社員一人ひとりに対してユニークなユーザーIDを割り当てるようにしておく。

 また,Webコンテンツ(内容)やプログラムの開発など特定の業務を行うユーザーを1つのグループにまとめておけば,そのグループのユーザーだけが操作できるディレクトリを簡単に作成できる。特定のユーザーが共同で作業する環境では,対象ユーザーだけがアクセスできるディレクトリに対してアクセス権限を設定しておこう。その際は,対象ユーザーをまとめてグループ化し,ファイルのアクセスを変更するchmodコマンドを使ってそのグループ単位でアクセス権限を設定する。

スクリプトで負担を削減

 多くのユーザーを管理する場合には,なるべく管理手順を簡単にすることも大切である。大量のユーザーを一括登録するときに,すべてのユーザーに対して,useraddコマンドとpasswdコマンドを実行するのは大変だ。そうしたときには,あらかじめ作成したユーザー登録用のファイルの内容に従って自動的にユーザーとそのパスワードを設定できるnewusersコマンドを使用する(図2[拡大表示])。ただし,この場合にはnewusersコマンド実行後のユーザー登録用ファイルの取り扱いに注意が必要になる。このファイル内には平文でパスワードが記述されているためだ。

 passwdコマンドとシェル・スクリプトを使って,多くのユーザーの暫定的な初期パスワードを自動設定・登録する方法もある(図3[拡大表示])。初期パスワードを乱数で生成するために,mkpassedコマンドを使用することもできる(図4[拡大表示])。いずれの場合でも,初期パスワードをユーザーに通知するときに,ユーザー自らがパスワードを再設定するように促しておくことも,セキュリティ上重要なシステム管理者の業務である。

ディスク管理
容量の設定や新設を行う

 ハード・ディスク管理で気を付けることは,(1)ハード・ディスク内のパーティションの大きさは簡単に変更できないため,システム構築時に余裕ある容量のパーティションを確保しておく,(2)パーティションを細かく分割しておいて,ファイル・システム単位でトラブルが発生した場合の被害をなるべく少ないようにする,ことである。ただし,その場合でもハード・ディスク装置そのものが故障すれば対処できないので,後述するように大事なデータはバックアップしておく。

 パーティション構成については,システムの用途に依存するものの,一般的には,/(ルート),/usr,/home,/varごとにパーティションを設定しておく。特にRed Hat Linux 7Jからは,Webサーバーやftpサーバーが使用するコンテンツの置き場所が/homeの下から/varの下に変更されたので,7Jを使う場合は/varを独立したパーティションにしておいた方が良い。また,こうしておいた方がバックアップやリストアが簡単な場合もある*1

ユーザーの使用容量を制限する

 ユーザーまたはグループごとに設定したサイズのハード・ディスク容量を割り当てて,その容量を超えたディスク・スペースを使用不能にすることもできる。最近ではサーバーのディスク容量が大きくなったのであまり使わないかも知れないが,大人数で1台のハード・ディスクを共有する場合には便利だ(図5[拡大表示])。

 管理者はディスクの空き領域が極端に変化したとき,どうしてそうなったのかを調査する必要がある。調査した結果,一般ユーザーに割り当てた領域で極端にデータ容量が増加しているときには,そのユーザーに連絡して対処してもらうか,あるいは管理者の権限で自ら対処するなどの措置を取る。こうした場合に備えて,一般ユーザー領域のデータの扱いについてあらかじめルールを決めて,そのルールを一般ユーザーに告知しておこう。例えば,ユーザー領域のデータがいっぱいになりそうな場合,1回はユーザーに警告し,それでユーザーが自らデータを削減しないようなら管理者がデータを消せるようにルールを決め,周知徹底しておく。このように一般ユーザーから了解を得ておけば,ディスクがいっぱいになりそうなときに,より迅速に対処できる。

 現状のハード・ディスク容量を使い果たしそうで,既存ファイルを削除できない場合は,新たなディスクを増設するしかない。ディスクを増設するときには,(1)新しいディスクをPCに装着する,(2)fdiskコマンドを使ってそのディスク内にパーティションを確保する,(3)mke2fsコマンドを使ってパーティション内にファイル・システムを作成する,(4)mountコマンドを使って追加したファイル・システムをマウントする,という作業を順次行う(図6[拡大表示])。