
В нашей корпоративной сети, когда я запускаю finger
(без аргументов) с клиентской машины, мне предоставляется список пользователей с именами и т. п. Но когда я запускаю, finger @localhost
я получаю "Connection denied". Так куда же 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)