我最近决定管理自己的 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 就是您最好的朋友。