
企業ネットワーク内で、finger
クライアント マシンから (引数なしで) 実行すると、名前などのユーザーのリストが表示されます。しかし、実行するとfinger @localhost
「接続が拒否されました」というメッセージが表示されます。では、finger はデフォルトでどこに接続するのでしょうか?
答え1
によるとstrace finger
、私のシステムでは現在のユーザーのリストは
open("/var/run/utmp", O_RDONLY|O_CLOEXEC) = 4
それぞれの詳細については、stat
pty
stat("/dev//pts/0", {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
引数なしで実行すると になります。 を指定して実行すると@localhost
、デーモンを使用しようとしますfingerd
が、もう 1993 年ではないのでデーモンは実行されません。そのため になりますconnection refused
。
編集user
ではなく を引数として実行すると@remote-system
、 から情報を取得します。GECOSフィールドおよび/etc/passwd
ホーム ディレクトリ ( のようなファイル用~/.plan
) にあります。権限がないため、たとえばプラン ファイルを表示するには、ホーム ディレクトリと読み取り可能なプラン ファイルが必要になります。ここでは ( からもstrace
)、モード 750 (私は彼女のグループに属していません) である別のユーザーのディレクトリでこれらのファイルの一部を開こうとして失敗しているのがわかります。
lstat("/home/cby/.pgpkey", 0x7fff52fcec60) = -1 EACCES (Permission denied)
lstat("/home/cby/.project", 0x7fff52fcec60) = -1 EACCES (Permission denied)
lstat("/home/cby/.plan", 0x7fff52fcec60) = -1 EACCES (Permission denied)