linux创建新用户组是什么-groupadd 命令使用与实例

老实说,当我第一次使用 groupadd 时,我被它拥有的大量选项弄得不知所措。
曾经想创建一个开发组,但是因为GID设置不正确,与系统组冲突,记得闹了很多麻烦。
这个命令说起来很容易,但实际上有很多方法可以做到。

有趣的是,在 Linux 上创建组与在 Windows 上创建组完全不同。
在 Windows 上,您只需创建一个组,系统就会自动为您处理 GID。
Linux 没那么聪明。
您需要了解 GID 的重要性。
GID 就像组 ID 号。
如果有矛盾,就会出现麻烦。
当时,我正在与这种失落感作斗争,并创建了一个名为“dev”的小组。
事实证明,系统有一个也称为“dev”的服务,最终导致了权限混乱。
因此,在使用groupadd时,建议您首先检查/etc/group是否有重复的名称。

至于强制创建(-f选项),这绝对是groupadd最危险的,也是最实用的功能。
我的一个朋友称之为“暴力创作法”,使用时要非常小心。
有一次,他在滑动时使用了 -f,这两个组具有相同的 GID。
最后,我无法登录系统。
因此,当使用 -f 时,我习惯先备份 /etc/group 文件,以便在出现问题时可以恢复。
当然,更安全的方法是首先使用 getent group 检查 GID 是否可用,然后运行命令。

不同的 Linux 发行版在系统组方面都非常谨慎。
我运行过 CentOS 和 Ubuntu,系统组 GID 范围定义不同。
CentOS 的默认值小于 5 00,但 Ubuntu 可能为 1 000。
因此,我们经常会遇到在CentOS上创建系统组,但GID太小,与用户组冲突的情况。
因此,在进行任何跨平台操作之前,应首先检查/etc/login.defs中的SYS_GID_MIN和SYS_GID_MAX。
这比阅读发行版的文档更可靠。

如果您覆盖默认设置(-K 选项),groupadd 就能解决问题。
我使用这个功能是因为我有一个项目需要特别严格的密码策略。
例如,将 PASS_MAX_DAYS 更改为 3 0 天或设置 MIN_LEN(最小密码长度)。
说实话,我不明白为什么 -K 只影响当前命令创建的组,并且不能全局更改。
我检查了手册页,发现这是设计使然。
毕竟,并非每个组都需要特殊的密码策略。
这说明Linux的设计者考虑得很周到,同时也让命令变得更加严格一些。

在验证这个结果的步骤中,有一个小技巧。
也可以用grep检查/etc/group,但组名可能太长或含有特殊字符,直接检查容易出错。
我更喜欢使用 getent 组。
该命令返回更完整的信息,更智能地处理特殊字符。
例如,如果您检查“devops”组,则所有成员都会正确显示,包括标有 @ 符号的其他组。

总的来说,groupadd命令看似简单,但如果使用得当,可以避免很多问题。
了解 GID 和系统组范围的基本概念非常重要。
我们建议初学者先从普通组开始练习,习惯了再创建系统组。
毕竟,如果系统组出现问题,恢复的成本要比用户组的成本高得多。

Linux中如何创建新用户_Linux创建新用户的详细操作步骤

说实话,在Linux中创建用户需要命令行,但是不要被吓倒,实际上并没有那么复杂。
刚接手服务器的时候,面对这一堆命令,我一度迷茫。

以Ubuntu系统为例。
我使用命令 sudo adduser john。
就像贴心的客服,询问你密码,一步步填写信息。
甚至主目录也会自动为您组织,直接位于 /home/john 下。
这个东西特别适合初学者,只要按照说明操作就可以了。
但如果你玩CentOS,就得用useradd,有点像手动操作。
例如sudo useradd -m john,必须添加-m参数,否则必须手动创建主目录。
安装完成后,再次运行 sudo passwd john 为新用户设置密码。

有趣的是,新用户默认没有权限。
您必须将他们添加到管理员组。
在 Ubuntu 上,使用 sudo usermod -aG sudo john。
在 CentOS 上,使用 sudo usermod -aG Wheel john。
这样,当他以后使用sudo命令时,系统就会识别出来。

有时你会想要对其进行个性化设置,比如将登录 shell 更改为 zsh,或者将你的主目录移动到其他位置,或者添加职业描述什么的,所有这些都可以通过 useradd 的参数来完成。
之前为客户搭建系统时,我确保他的主目录不在默认路径中,以避免与其他用户发生冲突。

确认链接非常关键。
我习惯使用 id john 来检查用户 ID。
验证没有问题后,我发送/home/john来验证主目录是否创建。
最安全的选择是使用 su
john 进行交易并查看。
如果一切正常,你就成功了一大半。

说到安全,绝对是重中之重。
我的所有服务器现在都需要使用 SSH 密钥登录并禁用密码记录。
在本地生成密钥对,然后使用 ssh-copy-id john@server IP 传输公钥。
我经常忘记这一步。
结果,新用户无法连接到服务器,这很烦人。
此外,必须实施防火墙规则和fail2 ban,以防止有人能够暴力破解密码。

常见的问题是,例如,如果在使用useradd时忘记添加-m参数,则必须手动创建目录,并且必须使用sudo chown john:john /home/john来更改权限。
还有一些用户无法理解 sudo。
你可以使用 groups john 来查看他们在哪个组。
他们肯定不在 sudo 组中。

说实话,这个过程中有很多细节。
有时我工作得太快而忘记了某个参数,所以我必须回去重新做一遍。
但习惯了就好了。
Linux 是一种你尝试几次后就会习惯的东西。
当你真正要操作的时候,建议按照步骤进行,不要随意更改,尤其是权限。
改错了很麻烦。