首页>教程>Linux 命令手册> 用户与权限管理 >Linux groupmod 命令 - 修改已创建的用户组的信息

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_DIRPREFIX_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选项参数无效
4GID 已被占用
6指定的用户组不存在
9新组名已被占用
10无法更新组的配置文件
11-13服务或 PAM 认证相关的错误

结语

groupmod 命令是类 Unix 系统中不可或缺的用于修改用户组的命令,掌握其基本的用法能够高效的修改用户组名称、GID、成员、密码等信息。

掌握 groupmod 的语法、选项及其使用示例,再结合 useraddusermoduserdelgroupaddgroupdel 等命令,可有效的管理系统的账户。