在我们的公司网络中,当我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)