Linux chfn 命令 - 修改用户的个人信息
chfn 命令是 Linux、Unix 系统中的用户信息管理命令,chfn 命令的主要功能是修改存储在 /etc/passwd 配置文件中的用户的全名、办公室房间号、办公室电话、家庭电话等个人信息,这些信息存储在 /etc/passwd 配置文件中,这些信息可以使用 finger 命令查看。
chfn 命令的英文名称为 Change Finger Information,之所以叫 Finger,是因为它是一个命令,用于查看用户的个人信息。
[!TIP]
普通用户只能修改自身账户信息,所修改的信息的范围受
/etc/login.defs配置的限制,root 用户可以修改所有用户的信息,且能修改GECOS 字段中未定义的内容。GECOS 字段是/etc/passwd文件中用户的注释字段,用于存储用户的一些额外信息。
与 usermod 命令的对比
在 Linux、Unix 系统中,usermod 命令也是用于修改用户信息,与 chfn 命令的功能有重叠但是也有很多的不同:
chfn: 专门用于修改用户的个人信息(全名、电话、房间号等),只修改 GECOS 字段usermod: 全面修改用户账户的配置信息
chfn 命令语法结构
chfn 命令的语法结构简单易懂,其具体语法结构形式为:
chfn [选项] [登录名]
语法结构中各部分的解释说明:
[选项]:可选的内容,用于指定要修改的字段类型,不指定任何选项时进入交互模式。[登录名]:可选参数,指定要修改的用户登录名;不指定时则修改当前登录用户的信息。
命令使用说明
在使用 chfn 命令时,需要注意以下内容:
- 字段字符限制:
chfn命令修改的所有字段都不能包含冒号:、逗号,、等号=;当使用chfn命令时指定了--other选项,可以包含逗号,、等号=。 - 权限限制:默认情况下下,普通用户无法修改自己的全名,只能修改房间号、办公电话、家庭电话等信息。
chfn 命令使用示例
如下给出一些示例来说明 chfn 命令的使用方法。
交互模式修改当前用户信息
当不使用任何选项,不指定用户的登录名时,进入交互模式修改当前用户的信息:
chfn
输入用户的密码后,交互提示对应的信息,输入信息后,修改对应的信息。
修改指定用户的全名
使用 -f 或 --full-name 选项指定修改用户的全名:
sudo chfn -f "张三" testuser
[!NOTE]
普通用户是无法修改用户的全名,需要使用
root用户或者sudo权限。
修改房间号与办公电话
使用 -r 选项指定修改房间号,-w 选项指定修改办公电话:
sudo chfn -r "302" -w "010-12345678" testuser
修改额外的 GECOS 信息
root 用户可以修改指定的 GECOS 信息之外的内容,使用 -o 或 --other 选项修改指定的信息:
sudo chfn -o "account=test001" testuser
如上的示例为用户设置 account 信息。
chfn 命令选项详解
查看 chfn 命令的选项的解释说明,就可以了解 chfn 命令的全部功能,如下给出 chfn 命令的全部选项的解释说明:
| 缩写 | 功能说明 | 权限要求 |
|---|---|---|
-f, --full-name FULL_NAME | 修改用户的全名,全名为 GECOS 字段的第一部分 | 普通用户受配置限制,root 无限制 |
-h, --home-phone HOME_PHONE | 修改用户的家庭电话,对应 GECOS 字段的第四部分 | 普通用户、root 用户 |
-o, --other OTHER | 修改 GECOS 字段中未明确定义的部分 | 仅 root 用户 |
-r, --room ROOM_NUMBER | 修改用户的办公室房间号,对应 GECOS 字段的第二部分 | 普通用户、root 用户 |
-R, --root CHROOT_DIR | 在 chroot 目录中执行命令,使用该目录下的配置文件 | 仅 root 用户 |
-u, --help | 显示帮助信息并退出 | 所有用户 |
-w, --work-phone WORK_PHONE | 修改用户的办公电话,对应 GECOS 字段的第三部分 | 普通用户、root 用户 |
chfn 命令配置说明
chfn 命令的普通用户的执行权限受 /etc/login.defs 配置文件中的 CHFN_RESTRICT 参数控制,该配置项会决定普通用户可修改哪些 GECOS 字段。
1)可用的字符对应的配置信息:
f:允许修改 Full name(全名)r:允许修改 Room number(房间号)w:允许修改 Work phone(办公电话)h:允许修改 Home phone(家庭电话)yes等价于使用rwh字符no等价于使用frwh字符
2)配置示例
允许普通用户修改所有字段:
CHFN_RESTRICT frwh
相关配置文件说明
运行 chfn 命令会关系到如下的两个配置文件:
| 文件路径 | 作用说明 |
|---|---|
/etc/passwd | 存储用户账户的基本信息的文件,如:登录名、UID、GID、家目录、Shell 等 |
/etc/login.defs | 存储 CHFN_RESTRICT 相关的全局配置策略的文件 |
结语
chfn 是 Linux、Unix 系统上轻量化、专门用于修改用户 GECOS 字段的信息,与 usermod 相比专注于修改用户的个人信息。
掌握 chfn 命令、相关配置与文件作用,可以轻松的掌握如何使用 chfn 命令修改用户的个人信息。