在我们的公司networking中,当我从客户端机器运行finger (无参数)时,会向我呈现一个具有名称和类似用户的列表。 但是当我运行finger @localhost我得到“连接被拒绝”。 那么默认情况下手指连接到哪里?
根据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运行时编辑 ,它从/etc/passwd和home目录(对于~/.plan等文件)的GECOS字段获取信息。 它没有特权,所以用户将需要主目录和计划文件,您可以阅读,以显示例如计划文件。 在这里(也是从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)