如何从 Linux 命令行将用户添加到组

Linux 中组的使用构成了对本地系统和网络的访问控制的基础。 简而言之,Linux 中的所有内容都被视为一个文件——从基本的文本文档到硬盘驱动器——并且这些文件都有一个所属组。 如果您不在控制特定文件的组中,则您可能没有对该文件的读取或写入访问权限,因此您作为用户的能力可能会在这方面受到削弱。

本文将讨论将用户添加到组的几种方法。 无论您是创建新用户还是修改现有用户,都应该在这里找到一些有用的东西。

哪个组拥有文件?

找出哪些组控制系统上的哪些文件的最直接方法是使用 ls 效用。 类型 ls 进入包含文件的任何目录中的终端,您将看到类似下图的内容。

这里的屏幕截图显示了 ls -l 命令以长格式列出各种文件的属性( -l 选项)。

第一个打印输出显示了测试用户主目录的稀疏内容。 在该目录中有两个子目录(“disks”和“image”)和一个二进制文件(“photorec.ses”)。 “drwxr-xr-x”的读数首先表明它是一个目录(“d”); 然后它显示目录所有者(“rwx”)、其组(“rx”)和所有其他用户(“rx”)的权限。

允许所有者对该目录进行读(“r”)、写(“w”)和执行(“x”)访问,这是有道理的。 以个人用户命名的“test”组中的用户获得“rx”权限。 所有其他用户也被允许读取和执行访问。

test 的主目录中的其他子目录和文件的属性与初始目录有所不同。 例如,Test 不允许写入“image”目录,因为 root 拥有该目录。 在下图中,看看如果 test 尝试在那里创建一个文本文件会发生什么。

拒绝访问

将新用户添加到组

假设您想通过“test”组授予另一个用户访问 test 文件的权限。 您可以通过向新用户添加参数来执行此操作 useradd 命令。 具体来说,您可以使用:

创建一个名为“master”的新用户,该用户加入了“test”组。

-m 选项在“/home/master”创建新用户的主目录。 -G test 将 master 添加到补充组“test”。 -s /bin/bash 使 master 的默认 shell bash 贝壳。

您可以使用以下命令查找任何用户的组关联:

请参阅下图中的输出。

组列表

将现有用户添加到组

如果您已经有了“主”用户,您可以修改该用户

-G 这里的选项类似于 useradd 上面的命令。 您可以在此处使用逗号分隔的列表指定多个组,例如“test,video,optical”。

确保使用 -a 将这些组附加到现有用户的选项。 如果你省略 -a 参数,您将从逗号分隔列表中未提供的任何组中删除现有用户。

删除组怎么样?

您可以使用以下命令:

为了 example, gpasswd -d master test 将从“test”组中删除“master”用户。

用户添加删除用户

结论

您现在应该具备将用户添加到组以及更改系统上哪些组和用户可以访问您和其他人的文件的知识。

不要轻视这些简单的命令。 他们可能只是开始进入系统安全的漫长旅程,但他们确保用户被适当地分开,并且不能有意或无意地滥用他们的权力。

订阅我们的新闻!

我们的最新教程直接发送到您的收件箱

注册所有时事通讯。 注册即表示您同意我们的隐私政策并且欧洲用户同意数据传输政策。 我们不会共享您的数据,您可以随时取消订阅。 订阅