首页>教程>Linux 命令手册> 用户与权限管理 >Linux chfn 命令 - 修改用户的个人信息

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 命令时,需要注意以下内容:

  1. 字段字符限制:chfn 命令修改的所有字段都不能包含冒号 :、逗号 ,、等号 =;当使用 chfn 命令时指定了 --other 选项,可以包含逗号 ,、等号 =
  2. 权限限制:默认情况下下,普通用户无法修改自己的全名,只能修改房间号、办公电话、家庭电话等信息。

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 命令修改用户的个人信息。