手指默认连接到哪里?

手指默认连接到哪里?

在我们的公司网络中,当我finger从客户端计算机运行(无参数)时,系统会显示用户列表,其中包含姓名等信息。但当我运行时,finger @localhost系统会显示“连接被拒绝”。那么,默认情况下,finger 会连接到哪里?

答案1

据我所知strace finger,在我的系统上它从中获取当前用户列表

open("/var/run/utmp", O_RDONLY|O_CLOEXEC) = 4

以及每个细节由statpty

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)

相关内容