侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux groupadd命令详解:创建用户组的方法和技巧(附实例教程和注意事项)

Linux groupadd命令介绍

groupadd命令是group add的缩写,用来创建一个新的用户组,新用户组的信息将被添加到系统文件中。用户组是Linux系统中管理用户权限的一种机制,可以将多个用户归属到同一个组,从而方便地设置组内用户的文件访问权限、进程管理权限等。用户组也可以用来控制用户对系统资源的使用,如磁盘配额、CPU时间等。groupadd命令是系统管理员常用的命令之一,可以用来创建不同类型的用户组,如普通用户组、系统用户组等。

Linux groupadd命令适用的Linux版本

groupadd命令是Linux系统中的标准命令,可以在多数Linux发行版(如Debian、Ubuntu、Alpine、Arch Linux、Kali Linux、RedHat/CentOS、Fedora、Raspbian)的主要终端命令解释器(包括bash、zsh、csh、ksh、fish、tcsh)中使用
。不过,不同的Linux发行版可能会有一些细微的差异,如默认的用户组ID范围、配置文件的位置等。因此,在使用groupadd命令时,建议先查看系统的man手册,了解具体的用法和参数。可以使用以下命令查看man手册:

man groupadd

Linux groupadd命令的基本语法

groupadd命令的基本语法格式如下:

groupadd [选项] 用户组名

其中,用户组名是必须指定的参数,用来指定要创建的用户组的名称。用户组名应该是唯一的,不能与已有的用户组或用户重复。用户组名的长度不能超过32个字符,且只能包含字母、数字、下划线、短划线或点号。用户组名不能以短划线开头,也不能包含冒号。

Linux groupadd命令的常用选项说明

groupadd命令支持以下常用的选项:

选项说明
-f, --force如果指定的用户组已经存在,该选项将使命令以成功状态退出。如果与-g或--gid选项一起使用,并且指定的用户组ID已经存在,该选项将强制忽略给定的用户组ID,而分配一个新的唯一的用户组ID。
-g, --gid 用户组ID指定新建用户组的数字ID。用户组ID应该是非负的,且唯一,除非使用-o或--non-unique选项。如果不指定该选项,命令将分配一个默认的用户组ID,大于系统中任何已有的用户组ID。
-h, --help显示帮助信息,提供groupadd命令的用法和选项的说明。适合快速查阅命令的文档。
-K, --key KEY=VALUE覆盖配置文件/etc/login.defs中的默认值。可以指定多个-K选项。可以修改配置文件中定义的参数,如GID_MIN和GID_MAX等。
-o, --non-unique允许创建用户组ID不唯一的用户组。适合创建有重复用户组ID的用户组。
-p, --password 密码设置用户组的加密密码。密码由crypt(3)函数返回,对用户可见,且存储在/etc/gshadow文件中。默认情况下,密码是禁用的,且必须符合系统的密码策略。
-r, --system创建系统用户组。系统用户组的数字ID在SYS_GID_MIN和SYS_GID_MAX范围内,这两个参数在/etc/login.defs文件中定义,而不是GID_MIN和GID_MAX。
-R, --root CHROOT_DIR在指定的CHROOT_DIR目录中应用更改,并使用该目录中的配置文件。适合在chroot环境中管理用户组。

Linux groupadd命令的实例

以下是一些使用groupadd命令的实例:

创建一个普通用户组

要创建一个普通用户组,只需要指定用户组名即可。例如,要创建一个名为demo的用户组,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ sudo groupadd demo

如果创建成功,命令不会有任何输出。可以使用以下命令查看用户组的信息:

[linux@bashcommandnotfound.cn ~]$ grep demo /etc/group
demo:x:1001:

可以看到,系统为demo用户组分配了一个用户组ID为1001的项。

创建一个指定用户组ID的用户组

要创建一个指定用户组ID的用户组,可以使用-g或--gid选项。例如,要创建一个用户组ID为2000的用户组,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ sudo groupadd -g 2000 test

如果创建成功,命令不会有任何输出。可以使用以下命令查看用户组的信息:

[linux@bashcommandnotfound.cn ~]$ grep test /etc/group
test:x:2000:

可以看到,系统为test用户组分配了指定的用户组ID为2000的项。

创建一个系统用户组

要创建一个系统用户组,可以使用-r或--system选项。系统用户组的用户组ID通常小于1000,用来管理系统服务或进程。例如,要创建一个名为sysdemo的系统用户组,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ sudo groupadd -r sysdemo

如果创建成功,命令不会有任何输出。可以使用以下命令查看用户组的信息:

[linux@bashcommandnotfound.cn ~]$ grep sysdemo /etc/group
sysdemo:x:999:

可以看到,系统为sysdemo用户组分配了一个用户组ID为999的项。

创建一个有密码的用户组

要创建一个有密码的用户组,可以使用-p或--password选项。密码应该是由crypt(3)函数返回的加密字符串,可以使用openssl命令生成。例如,要创建一个密码为123456的用户组,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ sudo groupadd -p $(openssl passwd -crypt 123456) passdemo

如果创建成功,命令不会有任何输出。可以使用以下命令查看用户组的信息:

[linux@bashcommandnotfound.cn ~]$ grep passdemo /etc/group
passdemo:x:1002:
[linux@bashcommandnotfound.cn ~]$ grep passdemo /etc/gshadow
passdemo:6kx4ZtHm9ra9A::

可以看到,系统为passdemo用户组分配了一个用户组ID为1002的项,并在/etc/gshadow文件中存储了用户组的加密密码。

Linux groupadd命令的注意事项

在使用groupadd命令时,需要注意以下几点:

  • 如果指定的用户组名或用户组ID已经存在,命令会报错并退出,除非使用-f或--force选项。
  • 如果不指定用户组ID,命令会根据/etc/login.defs文件中的GID_MIN和GID_MAX参数,自动分配一个用户组ID。如果这两个参数没有定义,或者定义的范围内没有可用的用户组ID,命令会报错并退出。
  • 如果指定的用户组名不符合命名规则,命令会报错并退出。
  • 如果指定的用户组密码不符合密码策略,命令会报错并退出。
  • 如果使用-R或--root选项,在指定的目录中创建用户组,需要确保该目录中有相应的配置文件和系统文件,否则命令会报错并退出。

如果在使用groupadd命令时,遇到以下错误信息:

bash: groupadd: command not found

说明系统中没有安装groupadd命令,需要先安装shadow-utils包,才能使用groupadd命令。可以使用以下命令安装shadow-utils包:

[linux@bashcommandnotfound.cn ~]$ sudo yum install shadow-utils

或者

[linux@bashcommandnotfound.cn ~]$ sudo apt install shadow-utils

具体的安装命令取决于系统的包管理工具。

0

评论区