)
一、命令简介finger 命令用于查找并显示本地或远程系统上的用户信息。它可以提供用户的登录状态、个人详情如真实姓名、办公室位置、电话号码等以及与该用户相关的计划文件如 .plan 和 .project内容。该命令常用于系统管理员快速查看当前登录用户或获取特定用户的公开信息。注意由于安全和隐私考虑许多现代 Linux 发行版默认不安装 finger 服务fingerd 守护进程因此查询远程主机用户的功能可能受限或不可用。二、语法格式plaintextfinger [选项] [用户名[主机名]]...不提供任何参数显示当前登录到本地系统的所有用户的简要信息。提供本地用户名显示指定本地用户的详细信息。提供 用户名 主机名尝试查询指定远程主机上的用户信息需要远程主机运行 finger 服务。三、常用选项及说明表格选项说明-s简洁模式。显示用户的登录名、真实姓名、终端名称、空闲时间、登录时间以及办公室地址和电话。-l长列表模式默认模式当指定用户名时。显示 -s 模式的所有信息并额外增加用户主目录、登录 Shell、邮件状态、以及用户主目录下 .plan 和 .project 文件的内容。-p隐私模式。与 -l 模式类似但不显示.plan 和 .project 文件的内容。-m匹配用户名。禁止对参数中的 “用户名” 进行真实姓名匹配只严格匹配登录名。行为说明如果不指定任何选项且提供了用户名参数则默认采用 -l 输出格式。如果不指定任何选项且未提供用户名参数即列出所有用户则默认采用 -s 输出格式。四、示例用法示例 1查看所有当前登录用户显示本地系统上所有已登录用户的简要信息。plaintextfinger输出类似plaintextLogin Name Tty Idle Login Time Office Office Phone root root tty1 2d Dec 18 13:30 alice Alice Doe pts/0 Dec 20 09:15 (192.168.1.100) bob Bob Smith pts/1 5 Dec 20 10:20示例 2查看特定用户的详细信息使用 -l 选项或默认查看用户 alice 的详细信息。plaintextfinger -l alice或plaintextfinger alice输出将包含登录信息、主目录、Shell并尝试显示alice/.plan 文件的内容如果存在。示例 3以简洁格式查看特定用户仅查看用户 bob 的基本登录信息。plaintextfinger -s bob示例 4查看用户信息但不显示计划文件查看用户 alice 的详细信息但隐藏其 .plan 和 .project 文件内容。plaintextfinger -p alice示例 5严格匹配登录名不匹配真实姓名假设存在用户 john其真实姓名为 “Johnathan Doe”。以下命令将只匹配登录名为 “john” 的用户而不会匹配真实姓名中包含 “john” 的其他用户。plaintextfinger -m john示例 6查询远程主机上的用户历史用法尝试查询主机 example.com 上用户 charlie 的信息。此功能现今已很少可用。plaintextfinger charlieexample.com五、注意事项安装与可用性finger 命令本身通常包含在 finger 或 bsd-finger 软件包中。但其查询远程主机所需的服务器端守护进程 fingerd或 in.fingerd在绝大多数现代系统中出于安全原因默认不安装且不启用。因此用户名 主机名 格式的远程查询基本失效。信息安全finger 命令会公开显示用户信息如电话号码、办公地点以及用户自愿写在/.plan 和/.project 文件中的任何内容。在允许使用此命令的环境中用户应注意这些文件可能被任何人读取。输出信息可能不完整输出中的许多字段如 Office, Office Phone依赖于系统用户数据库如 /etc/passwd 的 GECOS 字段中的信息如果未设置则相应字段为空或显示默认值。替代命令对于最常见的用途 —— 查看当前谁已登录系统who、w 或 last 命令是更通用和可靠的选择。对于获取用户账户信息id、getent passwd username 是更好的选择。