Linux groupmod 命令 - 修改已创建的用户组的信息
groupmod 命令是类 Unix( Linux、FreeBSD等) 系统中用于修改用户组信息的一个命令,使用 groupmod 命令可以修改用户组的 GID、名称、成员列表、密码等信息,是用户账号管理中的一款重要的命令。
相关功能命令对比
如下给出与用户组管理相关的几个命令,要注重区分其对应的功能:
groupadd:创建新用户组groupmod:修改已有用户组的信息groupdel:删除系统中已存在的用户组
groupmod 命令语法结构
groupmod 命令的语法结构非常易于理解,其语法结构形式为:
groupmod [选项] 用户组名称
语法结构中各部分的解释说明:
[选项]: 可选的内容,用于指定修改的具体操作用户组名称: 必须使用的内容,需要修改的组的名称
groupmod 命令使用示例
如下给出一些 groupmod 命令的简易的使用示例,更加明了的说明如何使用 groupmod 命令。
修改用户组的名称
使用 -n / --new-name 选项修改用户组的名称:
sudo groupmod -n newgroup oldgroup
[!NOTE]
newgroup为-n选项的值,oldgroup才是需要修改的用户组
修改用户组的 GID
使用 -g 或 --gid 选项后接非负十进制整数的值来设置新的 GID:
sudo groupmod -g 1008 testgroup
设置用户组的成员
使用 -U 或 --users 选项后接使用逗号分隔的用户名列表作为值,来设置组的成员;
sudo groupmod -U user1,user2 testgroup
[!NOTE]
只使用该选项会把原来的组成员,替换为设置的新组成员
追加用户组的成员
使用 -U 或 --users 选项配合 -a 选项一起使用会把用户列表追加到组中:
groupmod -aU user3 testgroup
设置组的密码
使用 -p 或 --password 选项为组设置密码,使用的密码必须是加密后的密码:
groupmod -p '$1$xxxx$encrypted' testgroup
[!NOTE]
密码使用
crypt形式加密,如使用openssl passwd -1 你的密码来加密密码
groupmod 命令选项详解
如下以表格的形式给出 groupmod 命令的全部选项详细解释说明:
| 选项 | 功能详细说明 |
|---|---|
-a, --append | 需要配合 -U 选项一起使用,将指定的用户成员列表追加到组的成员列表中,而非替换原有的成员 |
-g, --gid GID | 修改组的 GID,默认要求 GID 具有唯一性 |
-h, --help | 显示命令帮助信息并退出 |
-n, --new-name NEW_GROUP | 把用户组名称修改为指定的新名称 |
-o, --non-unique | 需要配合 -g 选项在一起使用,不要求 GID 具有唯一值 |
-p, --password PASSWORD | 使用加密后的密码设置组的密码,密码需要使用 crypt 格式加密 |
-R, --root CHROOT_DIR | 在 chroot 隔离目录中执行修改操作 |
-P, --prefix PREFIX_DIR | 在 PREFIX_DIR 前缀目录中修改组,不执行 chroot |
-U, --users USER1[,USER2,...[,USERN]]] | 为用户组设置成员,用户名以逗号分隔开来,默认情况下会替换掉原有的成员列表 |
相关配置文件说明
在使用 useradd 命令新建用户的时候,会修改一些配置文件,如下给出与用户相关的一些配置的解释说明:
| 文件路径 | 作用说明 |
|---|---|
/etc/group | 存储用户组的信息 |
/etc/gshadow | 存储用户组需要加密的信息 |
/etc/login.defs | 隐藏密码相关的全局配置策略 |
/etc/passwd | 存储用户账户的基本信息,如:登录名、UID、GID、家目录、Shell 等 |
groupmod 命令的退出状态码
groupmod 命令执行完成后会返回一个状态码,根据其返回的值,可以判断其执行所处的状态:
| 状态码 | 含义说明 |
|---|---|
| 0 | 执行成功 |
| 2 | 命令语法错误 |
| 3 | 选项参数无效 |
| 4 | GID 已被占用 |
| 6 | 指定的用户组不存在 |
| 9 | 新组名已被占用 |
| 10 | 无法更新组的配置文件 |
| 11-13 | 服务或 PAM 认证相关的错误 |
结语
groupmod 命令是类 Unix 系统中不可或缺的用于修改用户组的命令,掌握其基本的用法能够高效的修改用户组名称、GID、成员、密码等信息。
掌握 groupmod 的语法、选项及其使用示例,再结合 useradd、usermod、userdel、groupadd、groupdel 等命令,可有效的管理系统的账户。