finger 命令
基本介绍
finger是 Linux 系统中用于查看用户信息的命令。它可以显示用户的登录状态、全名、办公室、电话号码等信息。finger是系统管理员和普通用户查看用户信息的常用工具。
资料合集:https://pan.quark.cn/s/6fe3007c3e95、https://pan.quark.cn/s/561de99256a5、https://pan.quark.cn/s/985f55b13d94、https://pan.quark.cn/s/d0fb20abd19a
语法
finger [OPTIONS] [USERNAME...]常用选项
基本选项
-l:长格式显示-s:短格式显示(默认)-p:不显示计划文件内容-h, --help:显示帮助信息-v, --version:显示版本信息
使用示例
1. 查看所有登录用户
finger输出示例:
Login Name Tty Idle Login Time Office Office Phone user1 John Doe pts/0 10 Jun 10 09:00 Engineering 555-1234 user2 Jane Smith pts/1 Jun 10 09:30 Marketing 555-56782. 查看特定用户信息
finger username输出示例:
Login: username Name: John Doe Directory: /home/username Shell: /bin/bash Office: Engineering, 555-1234 Home Phone: 555-5678 On since Mon Jun 10 09:00 (UTC) on pts/0 from 192.168.1.100 No mail. No Plan.3. 长格式显示
finger-lusername4. 短格式显示
finger-susername5. 不显示计划文件
finger-pusername6. 查看多个用户
finger user1 user2 user37. 在脚本中使用
#!/bin/bash# 检查用户是否登录iffinger username|grep-q"On since";thenecho"User is logged in"elseecho"User is not logged in"fi输出格式说明
短格式输出
Login Name Tty Idle Login Time Office Office Phone user John Doe pts/0 10 Jun 10 09:00 Engineering 555-1234长格式输出
Login: user Name: John Doe Directory: /home/user Shell: /bin/bash Office: Engineering, 555-1234 Home Phone: 555-5678 On since Mon Jun 10 09:00 (UTC) on pts/0 from 192.168.1.100 No mail. Plan: Working on project X错误输出示例
finger: user 'invalid_user' unknown工作原理
finger 执行流程
# 1. 用户执行 finger 命令finger username# 2. 读取 /etc/passwd 文件获取用户信息# 3. 读取 /var/run/utmp 获取登录状态# 4. 读取用户的 .plan 和 .project 文件# 5. 输出用户信息相关文件
| 文件 | 说明 |
|---|---|
/etc/passwd | 用户信息 |
/var/run/utmp | 当前登录用户信息 |
/home/user/.plan | 用户计划文件 |
/home/user/.project | 用户项目文件 |
GECOS 字段说明
| 字段 | 说明 |
|---|---|
| Full Name | 用户全名 |
| Office | 办公室位置 |
| Office Phone | 办公室电话 |
| Home Phone | 家庭电话 |
实用技巧
设置用户计划
# 创建 .plan 文件echo"Working on project X">~/.plan# 创建 .project 文件echo"Project X">~/.project# 查看效果finger$USER检查用户登录状态
#!/bin/bashUSERNAME="john"# 检查用户是否登录iffinger"$USERNAME"2>/dev/null|grep-q"On since";thenecho"$USERNAMEis logged in"elseecho"$USERNAMEis not logged in"fi获取用户登录时间
# 获取用户登录时间finger username|grep"On since"批量检查用户状态
#!/bin/bash# 检查多个用户状态foruserinalice bob charlie;doiffinger"$user"2>/dev/null|grep-q"On since";thenecho"$user: logged in"elseecho"$user: not logged in"fidone相关命令
chfn:更改用户信息users:显示当前登录用户w:显示当前登录用户及其活动who:显示当前登录用户last:显示用户登录历史id:显示用户和组ID信息
注意事项
- 安装要求:需要安装 finger 包
- 隐私问题:finger 可能泄露用户信息
- 安全考虑:某些系统默认禁用 finger 服务
- .plan 文件:用户可以创建 ~/.plan 文件显示计划信息
- 网络访问:finger 可以查询远程主机用户(已较少使用)
总结
finger是 Linux 系统中用于查看用户信息的工具。它可以显示用户的登录状态、全名、办公室、电话号码等信息。finger是系统管理员和普通用户查看用户信息的常用工具。