技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营

赞助商

分类目录

赞助商

最新文章

搜索

如何在 Linux 上列出组中的所有用户

作者:admin    时间:2022-9-8 9:48:20    浏览:

在 Linux 上,文件具有三组权限。一组用于文件组。在将文件分配给组之前,你可能需要检查组成员是谁。

文件和目录权限

Linux 上的文件和目录对所有者有一组权限 ,对文件分配到的组有另一组权限,对不属于前两个类别之一的每个人都有权限。

每组权限定义该类别的成员是否可以读取、写入或执行文件。在目录的情况下,执行动作等同于能够cd进入目录。

文件或目录的默认组是所有者的默认组。这通常是创建它的人。组权限用于允许一组用户对该组的其他成员的文件和目录具有受控访问权限。

例如,你可能有一个开发团队、一个文档团队、一个研究团队等等。可以将每个团队的成员添加到适当命名的组中,以帮助协作。用户可以同时在多个组中。

这是一个简单但稳健的方案。但是,如果你的文件很敏感,那么在与他们分享你的工作之前,你可能会更乐意检查该组的成员是谁。有不同的方法可以做到这一点。

/etc/groups 文件

“/etc/group”文件包含以冒号“ :”分隔的组和组成员列表。每行有四个字段。

  • Name:组的唯一名称。
  • 密码:未使用。这将始终保持“x”。
  • 组 ID:唯一的组标识符。
  • 用户:组成员的逗号分隔列表。对于系统和守护程序帐户,该列表通常为空。

要将文件的内容转储到终端窗口,可以使用cat,但使用 less 滚动文件内容更方便。

less /etc/group

 

列表顶部的大多数条目都没有成员,尽管“adm”组有两个,“cdrom”组有一个。

 

如果我们想发现特定用户所在的组,我们可以使用grep他们的用户帐户名来搜索条目。这不是我们手头的任务。我们希望看到属于某个组的每个人,而不是一个人所属的组。但对我们来说看看是有启发性的。

grep "dave" /etc/group

 

为我们列出了包含字符串“dave”的条目。隐藏在其中的迹象表明,事情可能并不像我们想象的那么简单。

将用户添加到 Linux 时,默认操作是将他们放在与其用户帐户同名的组中。这是他们的主要群体。将它们添加到的任何其他组称为辅助组。

问题是用户没有被列为其主要组的成员。这就是组“dave”没有显示任何成员的原因,尽管用户“dave”是该组的成员。

当然,系统管理员可以将任何用户的主组更改为任何其他组的主组。这意味着用户可以是任何组的成员,但不会在“/etc/group”文件中这样列出。这是一个问题。

第二个问题是“/etc/group”文件不是单一的事实来源。现代 Linux 安装可能会将用户和组信息存储在比“/etc/passwd”和“/etc/group”更多的位置,尤其是在部署了轻量级目录访问协议等服务的公司情况下。只看一个地方,你可能看不到全局。

在我们的测试场景中,我们为一个开发部门创建了四个组。他们是:

  • resteam:研究团队。
  • devteam:开发团队。
  • pvqteam:产品验证和质量团队。
  • docteam:文档团队。

我们为这些团队增加了人员。有些人在不止一个团队中。如果我们打开“/etc/group”文件less并滚动到文件底部,我们将看到新的组和组成员。至少,与“/etc/group”文件所知道的成员一样多。

 

如果我们想提取单个组,我们可以使用搜索grep。插入符号“ ^”代表一行的开始。

grep "^devteam" /etc/group

 

这将从文件中提取“devteam”条目并列出所有组成员。

总结

本文介绍了如何在 Linux 上列出组中的所有用户,通过本文的学习,你应该了解了 /etc/groups 的使用。

相关文章

标签: linux  
x
  • 站长推荐
/* 左侧显示文章内容目录 */