SunOS には、コマンド行からシステムに対して実行するコマンドが豊富にあります。この章では、パスワードの設定方法、マシン上で実行されているプロセスの表示方法、不要なプロセスの終了方法、使用中のディスク容量の表示方法について説明します。
システムのセキュリティ保護のため、SunOS ではシステム用のパスワードを設定する必要があります。1 年に何度かパスワードを変更するようにすれば、アカウントに簡単にアクセスできるユーザを確実に 1 人だけに制限できます。自分のアカウントを許可なく使ったユーザがいるようであれば、即座にパスワードを変更してください。
書き留めなくても覚えられるパスワードを選択する。覚えられないようなパスワードは、簡単に推測できるパスワードよりも不適切です。
6 文字以上で、そのうち 1 文字以上が数字からなるパスワードを選択する。
自分の名前や頭文字、または配偶者の名前や頭文字は使わない。
ペットの名前や一般的な趣味に関係する名前は使わない。
大文字だけからなるパスワードは使わない。
複数のアカウントを持っている場合は、各アカウントごとにパスワードを変える。
パスワードには任意の文字を使えるが、Ctrl-C、Ctrl-Z、Ctrl-U、Ctrl-S、Esc、Tab などの文字、また場合によっては、# や @ などは端末上でシグナルとして解釈されることがある。したがって、これらの文字は使わない。端末によってはこれらの文字が通常のテキスト文字ではなくシグナルとして解釈されるため、パスワードを正しく入力できなくなる場合がある。
各ユーザのパスワードを変更するには、passwd コマンドを使います。
$ passwd Changing password for hankw on worker Old password: New password: Retype new password: $ |
Old Password: というプロンプトが表示されたら、現在のパスワードを入力します。
(現在、パスワードがアカウントに割り当てられていない場合は、Old Password: プロンプトは表示されません。) パスワードは画面上にエコー (表示) されません。そのため、パスワードを他のユーザに知られなくてすみます。
New Password: というプロンプトが表示されたら、新たに設定するパスワードを入力します。
このときも、入力したパスワードは画面上に表示されません。
最後に Retype new password: というプロンプトに対して、新しいパスワードをもう一度入力します。
これは、意図したパスワードを正確に入力できたかどうかを確認するためです。
New Password: に対して入力したのと同じパスワードを入力しないと、パスワードの変更は拒否され、Sorry という応答が返されます。何度もこのような状況になる場合は、システム管理者に問い合わせて新しいパスワードを設定してください。
6 文字未満のパスワードは使えません。また、新しいパスワードは古いパスワードと比較して 3 文字以上は異なっていなければなりません。
パスワードの有効期限を設定 (passwd コマンドのオプションを使うと設定できる) している場合、パスワードには最長有効期限のみ、または最長有効期限と最短有効期限の両方を持つものがあります。パスワードの有効期限は、システム管理者が設定します。
パスワードの満期日 (最長有効期限) に到達すると、パスワードを変更するようプロンプトが出力されます。このプロンプトはログイン時に出力され、次のようなメッセージが表示されます。
Your password has expired. Choose a new one. |
次に、自動的に passwd プログラムが実行され、新しいパスワードを入力するよう要求されます。
また、たとえば、パスワードの最短有効期限が 2 週間と設定されている場合、その期間が経過する前にパスワードを変更しようとすると、次のような警告が表示されます。
Sorry, less than 2 weeks since the last change. |
パスワードの有効期限の設定に関する情報を参照する場合は、passwd コマンドの -s オプションを使います。
$ passwd -s username ps 2-14-92 1 90 7 |
上記の表示内容は、左から順に、ユーザ名、パスワードの状態 ( デフォルトは PS )、現在のパスワードが設定された日付、最短有効期限 ( パスワードを変更できるようになるまでの時間 )、最長有効期限 ( パスワードが無効になるまでの時間 )、パスワードの有効期限が経過する前の警告期間となっています。時間はすべて日単位で示しています。
passwd と、パスワードの有効期限の設定についての詳細は、『SunOS リファレンスマニュアル (1): ユーザーコマンド』を参照してください。
各コマンドがシステムによって解釈されると、一意のプロセス識別番号 (PID) を持つ独立したプロセスが生成され、そのコマンドが実行されます。システムは PID を使って各プロセスの現在の状態を追跡します。
現在実行されているプロセスを調べるには、ps コマンドを使います。ps コマンドでは、ユーザが所有する各プロセスのプロセス識別番号 (PID の下に表示される) の他に、プロセスが起動された端末 (TTY)、現在までにプロセスが使った CPU 時間 (TIME)、プロセスが実行しているコマンド (COMMAND) などが表示されます。
ps コマンドに -l オプションを追加すると、現在実行されているプロセスに関するさまざまな詳細情報 (S の下に表示される各プロセスの状態など) が表示されます。プロセスの状態を示すコードの意味は次のとおりです。
O - プロセッサ上で実行中
S - スリープ状態。プロセスはイベントが終了するのを待っている。
R - 実行可能状態。プロセスが実行待ち行列内にある。
I - アイドル状態。プロセスは現在作成中。
Z - ゾンビ状態。プロセスはすでに終了し、親プロセスは待機していない。
T - トレース中。親プロセスがそのプロセスをトレース中のため、プロセスはシグナルによって停止されている。
X - SXBRK 状態。プロセスは主記憶が空くのを待っている。
ps コマンドの実行中でもプロセスの状態は変化します。ps で取得できる情報は特定時点の実行状態のスナップショットのため、その出力結果は、ps を入力した直後のほんの僅かの時間にしか適用できません。したがって、状態情報が表示された時点で、すでに変わっている可能性もあります。
ps コマンドにはこの節で説明している以外に多数のオプションがあります。詳細については、『SunOS リファレンスマニュアル (1): ユーザーコマンド』を参照してください。
kill コマンドを使うと、不要になったコマンドプロセスを直接終了できます。このコマンドは、実行に長時間かかるコマンドを誤って入力した場合に特に便利です。
プロセスを終了するには、次の手順を実行します。
$ ps PID TTY TIME COMMAND 1291 co 0:12 -bin/csh (csh) 3250 p0 0:00 ps 1286 p1 0:05 -bin/csh (csh) 3248 p1 0:05 vi commands $ kill 1291 [1} Terminated -bin/csh/ (csh) $ |
ps の出力結果を grep コマンドを通じてパイプすると、適切な PID を簡単に見つけることができます。
$ ps | grep commandname |
commandname は、終了させたいコマンドプロセス名です。
プロセスを強制終了する場合は、次に示すように ps コマンドの -9 オプションを使えます。
$ kill -9 PID# |
PID# は、強制終了させたいプロセスのプロセス識別番号です。
ディスク容量は限られた資源であるため、現在使用中のディスク容量を追跡管理することを強くお勧めします。
df -k を入力すると、システムにマウントされている (直接アクセスできる) 各ディスクの全容量、利用可能な容量、使用中の割合が表示されます。
$ df -k |
ファイルシステムの全容量の 90 % 以上が使用中になった場合は、不要なファイルを削除する必要があります。このためには、不要なファイルを空きの多いディスクやテープに移動したり (cp でコピーしてから rm で削除する)、あるいはそれらのファイルを単に削除したりします。これらの作業は、自分で所有しているファイルについてだけ実行します。
ディレクトリとそのサブディレクトリの使用状況を 512 バイト単位のブロック数で表示するには、du コマンドを使います。
du コマンドは、各サブディレクトリ内でのディスク使用状況を表示します。ファイルシステム内のサブディレクトリのリストを作成する場合は、cd コマンドでそのファイルシステムに関連するパスに移動し、次のパイプラインを実行します。
$ du | sort -r -n |
sort コマンドの -r (reverse、逆順にソート) オプションと -n (numeric、数字の順にソート) オプションを使った上記のパイプラインによって、各ディレクトリがサイズの大きい順に表示されます。各ディレクトリにあるファイルの大きさ (バイト単位) と更新日付を調べるには、ls -l を実行します。古いファイルや 100 キロバイト以上のテキストファイルは、ディスク容量不足の原因となることがよくあります。