如何在Linux中创建组– groupadd命令
在本教程中,我们将学习如何使用groupadd命令在Linux中创建一个组。
什么是Linux组?
Linux组用于管理用户的特权。
我们可以为组定义一组特权,例如对特定资源的读,写访问。
然后,该组中的所有用户将自动获得对该资源的访问权限。
简单来说,组是用户的集合。
它有助于我们快速向一组用户授予特权。
例如," sudo"是一个组,该组中的任何用户都会自动获得超级用户特权。
如何在Linux中创建组?
Linux groupadd命令用于在Linux中创建一个组。
这是特定于Linux的命令,可以在所有发行版中使用,例如Ubuntu,CentOS和Debian。
Linux groupadd命令语法
groupadd命令的语法为:
groupadd [options] GROUP
让我们看一些示例,以了解groupadd命令及其各种选项的用法。
Linux创建组
可以由root用户或者使用sudo特权的超级用户运行groupadd命令。
root@localhost:~# groupadd test_users
如果创建了组,则不会出现任何错误或者成功消息。
组信息存储在/etc/group
文件中。
我们可以在此文件中查看新创建的组信息。
root@localhost:~# cat /etc/group | grep test_users test_users:x:1004: root@localhost:~#
Linux创建组
上面的数字表示组ID,它是一个整数值。
我们还可以使用" getent"命令来获取组的详细信息。
root@localhost:~# getent group test_users test_users:x:1004:theitroad root@localhost:~#
如果该组已经存在,则错误
如果该组已经存在,则会显示错误消息。
让我们再次运行上述命令。
root@localhost:~# groupadd test_users groupadd: group 'test_users' already exists root@localhost:~#
Linux组已存在错误
创建具有组ID的组
使用-g选项创建组时,我们也可以指定组ID。
root@localhost:~# groupadd -g 1005 test_users1 root@localhost:~# cat /etc/group | grep 1005 test_users1:x:1005: root@localhost:~#
如果组ID已被使用,您将收到一条错误消息。
root@localhost:~# groupadd -g 1005 test_users2 groupadd: GID '1005' already exists root@localhost:~#
Linux groupadd强制成功选项
如果该组已经存在,我们可以指定-f或者–force选项以成功退出。
root@localhost:~# groupadd -f test_users root@localhost:~#
如果我们要使用强制成功选项创建一个组并且该组ID已经存在,则将忽略组ID并创建该组。
root@localhost:~# groupadd -f -g 1005 test_users2 root@localhost:~# cat /etc/group | grep test_users2 test_users2:x:1006: root@localhost:~#
注意,由于我们使用了-f选项,因此使用不同的组ID创建了Linux组。
Linux groupadd帮助
如果需要有关groupadd命令用法的帮助,请使用-h选项。
root@localhost:~# groupadd -h Usage: groupadd [options] GROUP Options: -f, --force exit successfully if the group already exists, and cancel -g if the GID is already used -g, --gid GID use GID for the new group -h, --help display this help message and exit -K, --key KEY=VALUE override /etc/login.defs defaults -o, --non-unique allow to create groups with duplicate (non-unique) GID -p, --password PASSWORD use this encrypted password for the new group -r, --system create a system account -R, --root CHROOT_DIR directory to chroot into --extrausers Use the extra users database root@localhost:~#
Linux groupadd -K选项
我们可以使用-K选项覆盖/etc/login.defs文件中存在的GID_MIN和GID_MAX值。
这意味着新的组ID将取自使用-K选项提供的范围。
让我们看一个示例以清楚地了解此功能。
root@localhost:~# cat /etc/login.defs | grep GID GID_MIN 1000 GID_MAX 60000 root@localhost:~# root@localhost:~# groupadd -K GID_MIN=20000 -K GID_MAX=21000 test_users6 root@localhost:~# cat /etc/group | grep test_users6 test_users6:x:20000: root@localhost:~#
如果查看早期的命令,则分配的组ID接近1000。
但是在上面的groupadd命令中,使用的组ID为20000。
用密码创建组
我们可以使用-p选项创建一个带有密码的组。
root@localhost:~# groupadd -p abc123 test_users_pwd root@localhost:~#
但是,我从未亲自使用过它,也从未见过有人在使用它。
实际上,gpasswd的手册页指出这是一个安全问题。
root@localhost:~# man gpasswd Notes about group passwords Group passwords are an inherent security problem since more than one person is permitted to know the password. However, groups are a useful tool for permitting co-operation between different users.'
创建系统组
我们可以使用-r选项来创建系统组。
普通组和系统组之间没有区别。
唯一的区别是组ID分配。
对于普通组,组ID的分配范围是1000到60000(默认值)。
对于系统组,组ID小于1000。
同样,组ID不重要或者不提供任何其他特权。
root@localhost:~# groupadd -r system_group root@localhost:~# cat /etc/group | grep system_group system_group:x:999: root@localhost:~#
请注意,分配的组ID为999。