10    ネットワーク・ユーザおよびホストに関する情報の収集

この章では,通信やファイル転送処理に必要なローカルおよびリモートのユーザまたはホストに関する情報を検索する方法について説明します。 この章で説明するコマンドを使用すると,次のことを行うことができます。

注意

この章で説明するコマンドは,すべての TCP/IP オペレーションと同様に,ローカル・ホストおよびリモート・ホストのセキュリティ機能の影響を受けます。 この章や関連するリファレンス・ページの説明のとおりにコマンドが動作しない場合には,システム管理者に問い合わせてください。

10.1    ローカル・ホスト上のユーザの確認

ユーザ名とパスワードを入力してホスト・コンピュータにログインすると,ユーザには固有の ID が割り当てられます。 接続しているネットワークに関してこの情報を確認するには,who am i という who コマンドを使用してください。 このコマンドを実行すると,次に示すユーザ情報が表示されます。

次の例は,lennon というユーザが,システム・プロンプト (%) から who am i コマンドを入力して出力された結果です。

% who am i
lennon     ttyp0      Jul 15 14:17      (walrus)
 

この例は,ユーザ lennon が 7 月 15 日の午後 2 時 17 分に walrus というホストからログインしたことを表しています。 ttyp0 は使用した回線で,walrus はネットワークに接続しているこの回線に対する名前です。

who am i コマンドを使用すると,ワークステーションで実行しているセッションを追跡することができます。 セッションの中には,ユーザ自身による別のホストへのリモート・ログインや,一緒に作業をしている人によるリモート・ログインがあります。 who am i コマンドについての詳細は, who(1) リファレンス・ページを参照してください。

同じローカル・ホストに別のユーザがログインしているかどうかを確認するには,who コマンドを使用してください。 次の例では,lennon がローカル・ホスト london のプロンプトに対して who コマンドを入力しています。 この例では,現在,他に 3 人のユーザが別々のノードから london にログインしていることが表示されています。

london% who -M
lennon     ttyp0       Jul 15 08:17       (walrus)
elvis      ttyp2       Jul 15 07:55       (velvet)
burdon     ttyp1       Jul 15 09:02       (animal)
sarjan     ttyp4       Jul 14 16:47       (pepper)
 

who コマンドによる出力は,who am i コマンドによる出力と同じフォーマットです。

10.2    ネットワーク・ユーザに関する情報の取得

finger コマンドおよびそのオプションを使用すると,ローカル・ホストまたはリモート・ホストにアカウントを持つユーザの情報を表示することができます。 指定するホストは,fingerd デーモン・サーバを実行しているか,またはfingerd を起動するように構成された inetd デーモンがなければなりません。 finger(1) リファレンス・ページの説明のとおりに finger コマンドが動作しない場合は,システム管理者にお問い合わせください。

finger コマンドの構文は,次のとおりです。

finger [ [ option ... ] [ user ... ] [ user@host_name ... ] ]

オプションまたはユーザ名を指定しないで finger コマンドを実行すると,ログインしているローカル・ホスト上のすべてのユーザに関して,次の情報が表示されます。 ただし,これらの情報が表示されるのは,情報が /etc/passwd ファイルにあるユーザに限ります。

10.2.1    特定のユーザに関する情報の取得

finger コマンドを使用する際に,ローカル・ホスト上のユーザのログイン名を指定すると,指定しない場合よりも詳しい情報が表示されます。 表示される追加情報は,次のとおりです。

次の例では,finger コマンドを使用して,ローカル・ホストにアカウントを持つユーザ smith に関する情報を表示しています。

% finger smith
Login name: smith    (messages off)  In real life: John Smith
Office: LV05-3/T24
Directory: /usr/netd/r2/smith          Shell: /bin/csh
On since Apr  9 16:20:56 on ttypb from wombat.lv5.dec.c
18 seconds Idle Time
Project: manual, "Communicating with Network Users"
Plan:
 

出力結果の最初の行にある messages off は,ユーザ smithmesg n コマンドを .login ファイルに記述していることを表しています。 このコマンドを記述しておくと,ユーザ smith の端末は,他のユーザから write コマンドまたは talk コマンドによって送信される邪魔なメッセージを受信しなくなります。

この例では,ユーザ smith が自分のホーム・ディレクトリに作成した .project ファイルおよび .plan ファイルの内容も表示されています。 .project ファイルには 1 行しか入力することができません。 .plan ファイルには,ファイル・システムの許容限度まで行を入力することができます。 finger コマンドは,ファイルの終端 (EOF) までのすべての行を表示します。

10.2.2    リモート・ホスト上のユーザに関する情報の取得

次の例は,finger コマンドによって表示された,リモート・ホスト boston 上のユーザに関する情報を示しています。

% finger @boston
[boston]
Login       Name        TTY Idle    When      Office
amy      Amy Wilson      p0    4 Thu 10:00    345
chang    Peter Chang    *p1 2:58 Thu 10:16    103
 

この出力結果の最初の行にはリモート・ホスト名 boston,2 行目には出力の各フィールドに表示される情報の種類,3 行目以降には各ユーザに対して 1 行ずつ情報が表示されます。 アスタリスク (*) は,ユーザ changmesg n コマンドを .login ファイルに記述して,他のユーザからの write コマンドまたは talk コマンドによるメッセージを受信しないようにしていることを示します。

10.2.3    リモート・ホスト上の各ユーザに関する情報の取得

リモート・ホスト havana 上のユーザ luis に関する情報を表示するには,次のように finger コマンドを実行してください。

% finger luis@havana
Login name: luis                  In real life: Luis Aguilera
Directory: /users/luis            Shell: /bin/csh
On since May 24 10:16:07 on ttyp2 from :0.0
58 minutes Idle Time
Project: baseball game simulation software
Plan:
Distribute with linked statistics module.
 

10.2.4    finger コマンドからの出力のカスタマイズ

finger コマンドには,必要なデータに応じて出力結果を変更できるオプションが用意されています。 表 10-1 に,各オプションとその説明を示します。

表 10-1:  finger コマンドのオプション

オプション 説明
-b 簡易形式で出力する。
-f 各フィールドのタイトルを表示しない。
-h ユーザの .project ファイルを表示しない。
-i ユーザとアイドル時間のリストを表示する。
-l 他のオプションを無視して,詳細なフォーマットで出力する。
-m user がアカウント名であるとみなす。
-p ユーザの .plan ファイルを表示しない。
-q ユーザのログイン名,端末名,およびログイン時間のみを表示する。
-s 他のオプションを無視して,簡潔なフォーマットで出力する。
-w 他のオプションを無視して,短い簡潔なフォーマットで出力する。

finger コマンドについての詳細は, finger(1) リファレンス・ページを参照してください。

10.3    リモート・ホストおよびユーザに関する情報の取得

本書で説明するコマンドを使用して,ネットワーク上でメッセージの送信やファイル転送を実行する前に,受信側のホストが現在オンラインであるかどうかを確認しなければなりません。 これを行うには,ローカルのネットワークで rwhod デーモンを実行しているホストに対して動作する ruptime コマンドを使用します。

ruptime コマンドを実行すると,次の情報が表示されます。

ruptime コマンドの構文は,次のとおりです。

ruptime [ [ option ... ] [ sort_option ] ]

オプションを指定しないで ruptime コマンドを実行すると,ローカル・ネットワーク上のホストに関する状態レポートは,ホスト名のアルファベット順でソートされて表示されます。 このレポートでは,ホストがオンライン (またはオフライン) 状態になっている時間は,時間;分という形式で示されます。 正の符号 (+) が含まれている場合は,時間が 1 日 (24 時間) を超えています。 次に表示の例を示します。

% ruptime
apple     up 102+05:07   4 users,  load 0.09, 0.04, 0.04
byblos    up   3+03:17,  3 users,  load 0.08, 0.07, 0.04
carpal    up      2:28,  0 users,  load 7.01, 5.02, 3.03
dull    down   9+21:59
eager   down  23+22:45
foobar    up   3+01:44,  9 users,  load 0.01, 0.02, 0.03
garlic    up  14+01:35,  1 user,   load 0.06, 0.12, 0.11
hiccup    up  4+22:14,  19 users,  load 6.37, 3.90, 2.71
jackal    up 13+10:32,  26 users,  load 0.70, 0.92, 0.95
starry    up 16+21:08,   1 user,   load 0.22, 0.14, 0.07
travel    up 13+23:44,   7 users,  load 1.01, 1.19, 0.5
trekky  down 23+03:53
tribbl    up  8+21:43,   0 users,  load 0.00, 0.00, 0.00
trubbl    up 14+02:34,   0 users,  load 0.00, 0.00, 0.00
tunnel  down 14+02:34
warp9     up  8+01:24,   9 users,  load 0.01, 0.02, 0.03
 

ある 1 台のホストがオンラインであるかどうかの確認だけが必要になることがあります。 このような場合には,次に示すホスト trekky の例のように,ruptime コマンドの後にホスト名を入力してください。

% ruptime trekky
trekky    down 23+03:53
 

この出力結果は,ホスト trekky が,現在オンラインではないことを表しています。

10.5 節で説明する ping コマンドを使用しても,ホストがオンラインであるかどうかを確認することができます。 ping コマンドは,TCP/IP ネットワーク構成の各ホストに対して動作します。

リモート・ホストでコマンドを実行する場合には (第 13 章で説明),-l オプションを指定して ruptime コマンドを実行し,ホストのリソースが十分かどうかを確認してください。 このコマンドを実行すると,ホストが負荷平均の降順でソートされます。 次に,ruptime -l コマンドを実行した結果の出力例を示します。

% ruptime -l
carpal   up      2:28,   0 users,   load 7.01, 5.02, 3.03
hiccup   up  4+22:14,   19 users,   load 6.37, 3.90, 2.71
travel   up 13+23:44,    7 users,   load 1.01, 1.19, 0.5
jackal   up 13+10:32,   26 users,   load 0.70, 0.92, 0.95

.
.
.

この例では,carpalhiccup 以外のホストで使用量が少なくなっています。 したがって,traveljackal が使用目的に適していれば,どちらかのホストにリモートでログインできます。

リモート・ホストを長い時間使用する必要がある場合は,セッションが 1 時間以上使用中のユーザ数だけでなく,そのホストを使用しているユーザの総数を知らなければなりません。 リモート・ホスト上のユーザの総数を表示するには,-a オプションを指定して ruptime コマンドを使用してください。 次の2つの例のうち,最初の例はホスト travel 上の,2 番目の例はホスト jackal 上のユーザの総数を示します。

% ruptime -a travel
travel   up 13+23:44,    32 users,   load 1.01, 1.19, 0.5
 

% ruptime -a jackal
jackal   up 13+10:32,    29 users,   load 0.70, 0.92, 0.95
 

-a オプションおよび -l オプション (前述の例を参照) を指定したruptime コマンドの実行結果から,ホスト travel および jackal には,ほぼ同数のユーザがいることがわかりますが, 現在のホスト travel の使用状況としては,(総数 32 人のうち) ここ 1 時間内にセッションを使用しているユーザは 7 人しかいません。 これに対し,ホスト jackal は,ユーザの総数は travel より少ないのですが,総数 29 人のユーザのうち 26 人がここ 1 時間内にセッションを使用しています。 以上のことから,時間の経過にともない,ホスト travel の使用量は,ユーザがログインするにつれて増加する可能性があるが,ホスト jackal の使用量は,ユーザのほとんどがすでにログインしているため,変わらないか減少する可能性があることがわかります。

他のオプション (-r オプションを除く) は,別の出力フィールドによりアルファベットの降順にソートします。 昇順にソートするには,コマンド行で各オプションの後に -r オプションを指定してください。 ruptime コマンドのオプションは,-r オプション以外のオプションと組み合わせて指定しないでください。 -r オプション以外のオプションと組み合わせて指定すると,コマンド行の最後に指定されたオプションのみが有効になります。 表 10-2 に,各オプションについて説明します。

表 10-2:  ruptime コマンドのオプション

オプション 説明
-a セッションが 1 時間以上アイドル状態であるユーザを含め,すべてのユーザの情報を表示する。
-l 5,10,および 15 分間隔の負荷平均によって出力をソートする。
-r ソート順を逆にする。
-t ホストのオンライン時間の長さによって出力をソートする。
-u ユーザ数によって出力をソートする。

ruptime コマンドについての詳細は, ruptime(1) リファレンス・ページを参照してください。

10.4    リモート・ホスト上のユーザに関する情報の取得

メッセージの送信またはファイル転送のコマンドを実行する前に,受信側のユーザがログインしているかどうかを確認する必要があります。 ローカルのネットワーク上のリモート・ホストにユーザがログインしているかどうかを確認するには,1 人または複数のユーザ名を指定して rwho コマンドを実行してください。 rwho コマンドは,rwhod デーモンを実行しているホストに対してのみ動作します。 不明な点がある場合は,システム管理者に問い合わせてください。

rwho コマンドを実行すると,次の情報が表示されます。

rwho コマンドの構文は,次のとおりです。

rwho [ [ -a ] [ user ... ] ]

オプションを指定しないで rwho コマンドを実行すると,1 時間以上アイドル状態であるユーザを除いて,ローカル・ネットワーク上のホストに現在ログインしているすべてのユーザが表示されます。 ローカル・ネットワークでは,通常,ユーザ数は数十人にものぼるため,情報が必要なユーザだけを指定するようにしてください。

-a オプションを指定すると,アイドル状態が 1 時間以上のユーザを含めてすべてのユーザが表示されますが,特定のユーザのみを指定することもできます。 これによって,ユーザが 1 時間以上アイドル状態かどうかに関係なく,リモート・ユーザがログインしているかどうかを確認することができます。 次に,-a オプションを指定して rwho コマンドを実行し,ユーザ wallybecky,および smith についての情報を表示する例を示します。

% rwho -a wally becky smith
becky   cygnus:pts0     Jan 17 11:20 :12
smith   aquila:ttyp0    Jan 15 09:52 :22
wally   lyra:pts7       Jan 17 13:15 1:32
wally   lyra:pts8       Jan 17 14:15 1:01
 

この例のように,rwho コマンドを実行した結果の出力は,アルファベット順にユーザ名,次にホスト名が表示されます。 アイドル時間の合計は,1 時間以上の場合,各セッションの開始時刻と日付の後にある最後のフィールドに表示されます。 -a フラグが指定されていたので,出力には,1 時間以上アイドル状態のユーザも含まれます。 -a フラグを指定しないで rwho コマンドを実行すると,ユーザ wally に関する情報は表示されません。

rwho コマンドについての詳細は, rwho(1) リファレンス・ページを参照してください。

10.5    リモート・ホストがオンラインであるかどうかの判定

ping コマンドは,システム管理者がネットワーク伝送の問題を解決するために使用し,TCP/IP ネットワークに構成されたホストに対して動作します。 ネットワーク・ユーザは,このコマンドを使用して,リモート・ホストが現在オンラインであるかどうかを判断することができます。 たとえば,リモート・ホスト moon がオンラインであるかどうかを判定するには,ローカルのシステム・プロンプトから ping コマンドを入力してください。 リモート・ホストがオンラインであることを確認する出力は,Ctrl/C を押すまで,次の例のように表示されます。

% ping moon
PING moon (130.180.4.108): 56 data bytes
64 bytes from 130.180.4.108: icmp_seq=0 ttl=255 time=42 ms
64 bytes from 130.180.4.108: icmp_seq=1 ttl=255 time=0 ms
64 bytes from 130.180.4.108: icmp_seq=2 ttl=255 time=0 ms
64 bytes from 130.180.4.108: icmp_seq=3 ttl=255 time=0 ms
[Ctrl/C]
----moon PING Statistics----
4 packets transmitted, 4 packets received, 0% packet loss
round-trip (ms)  min/avg/max = 0/11/42 ms