在 Linux,组用于组织和管理用户帐户。组的主要目的是为指定的资源定义权限并在组内用户之间共享权限。例如读取,写入或执行权限。
在本教程中,我们将讨论如何在 Linux 使用 groupadd 命令创建组。只有root用户或具有 sudo 权限的用户才能创建组。
groupadd 命令
groupadd 命令的语法形式是 groupadd [OPTIONS] GROUPNAME
。OPTIONS
groupadd 命令的选项,GROUPNAME
组的名称。
当运行 groupadd 命令时,groupadd 命令将会根据指定的选项以及 /etc/login.defs 文件中指定的默认值创建组。
groupadd 命令创建组
要创建新的组,请运行 groupadd 命令,然后输入组的名称。命令创建组的记录并添加到文件 /etc/group 和 /etc/gshadow。
如果已经存在相同名称的组,终端将会打印错误消息 groupadd: group 'mygroup' already exists。
如果禁用错误消息的输出,请使用 -f
/ --force
选项强制创建组。groupadd -f mygroup
命令创建组 mygroup
。
groupadd mygroup
groupadd -f mygroup
groupadd 命令指定 GID 创建组
在 Linux/Unix 操作系统,组由其名称和唯一的 GID 标识。默认情况下,创建组时,系统会从 /etc/login.defs 文件确定下一个可用的 GID。
如果需要创建具有指定 GID 的组,请使用 groupadd 命令的 -g
/ --gid
选项创建组。
当指定 GID 的组已经存在时,groupadd 命令将会打印错误消息,groupadd: GID '1010' already exists。
你也可以使用 groupadd 命令的 -o
/ --non-unique
选项,创建具有非唯一GID的组,但 Linux 系统管理员是很少这样做的。
例如groupadd -g 1010 mygroup
将会创建mygroup
并指定GID 1010
。要验证组是否创建成功,可以运行命令列出所有组并使用grep命令过滤结果。
groupadd -g 1010 mygroup
#groupadd -o -g 1010 mygroup
getent group | grep mygroup
mygroup:x:1010:
groupadd 命令创建系统组
系统和普通组之间没有真正的区别。通常,系统组用于某些特殊的系统操作目的,例如创建备份或进行系统维护。
系统组的 GID 是从 /etc/login.defs 文件指定的ID范围选择,该范围不同于普通组的范围。要创建系统组请使用 groupadd 命令的-r
/ --system
选项创建组。
例如命令 groupadd -r mysystemgroup
创建系统组 mysystemgroup
。
groupadd -r mysystemgroup
覆盖默认 /etc/login.defs 值
您也可以覆盖创建组时用于自动选择 GID 的最大值和最小值的范围,此值都可以为系统组和普通组指定。
groupadd 命令的 -K
/ --key
选项使您可以覆盖 /etc/login.defs 文件中指定的默认值。
假设您要创建 GID 是在 1200 至 1500 之间的组,在运行 groupadd 命令创建组时,请指定最小 / 最大值。
groupadd -K GID_MIN=1200 -K GID_MAX=1500 mygroup
groupadd 命令设置组密码
向组中添加密码没有实际用途,并且可能会导致安全问题,因为多个用户需要知道该密码。
如需要为组设置密码,可以使用 groupadd 命令的 -p
/ --password
选项,后跟组的密码,可让你为创建的组设置密码。
groupadd -p grouppassword mygroup
结论
在 Linux ,你可以使用 groupadd 命令创建组。如有任何疑问,请随时发表评论。
相同的说明适用于任何Linux发行版,包括Ubuntu,CentOS,RHEL,Debian,Fedora和Arch Linux。