Ubuntu Server 中的用户组最佳实践

Ubuntu Server 中的用户组最佳实践

我最近决定管理自己的 Web 服务器 (Ubuntu/Nginx),作为最佳实践,我禁用了 root 用户,并创建了一个具有 root 权限的新用户。创建新用户时,我没有指定将其添加到哪个组,这就是我的创建方式。

adduser newUserName

然后我添加到 sudo 组

gpasswd -a newUserName sudo

令我困惑的是,当我输入cat /etc/group查看所有组时,有一个名为我创建的用户的组。

root
...
newUserName

因此我开始怀疑我创建新用户的方式是否正确,或者最好先创建一个组,然后将具有相同权限的任何用户添加到同一组。

  • 有人可以建议一种管理 Ubuntu Server 中的用户/组的最佳实践,或者告诉我在哪里可以找到更多信息吗?

  • 如果我创建一个具有与现有用户相同权限的新组并将现有用户 newUserName 移动到此文件夹,会发生什么情况?

我想更好地了解如何在 Ubuntu Server 上管理用户。

多谢。

答案1

useradd / usermod 命令有一个选项可以指定主组 (-g)。如果您创建用户时不使用 -g 选项,则将创建一个与新用户名同名的主组,新用户将添加到该组。当用户创建文件/目录时,它将获取用户主组的组。您只能为一个用户分配一个主组。但每个用户可以有多个次要组。使用 useradd / usermod 命令的选项 -G 来添加次要组。

因此,如果您想创建一个用户并将其主要组设为 sudo ,请使用命令:

useradd -g sudo <newusername>

useradd语法:

useradd -g <primary group> -G <secondarygroup1>,<secondarygroup2> <NewUsername> 

在 Linux 中,主要组将存储到/etc/passwd文件中。/etc/groups文件将仅包含用户的次要组列表,因此getent group sudo(在 /etc/group 中查找组信息)不会显示该用户的主要组,即 sudo 。使用id <username>groups <Username>列出用户所属的所有组。您还可以检查第 4 个字段/etc/passwd以查找用户的主要组 gid。

当您有疑问时,Google 和 Man pages 就是您最好的朋友。

相关内容