了解用户组权限的命令

了解用户组权限的命令

如果我运行cat /etc/group命令或者groups username我能够知道作为特定用户组的组列表。

  • 有没有什么命令可以让我知道一个组拥有哪种类型的权限?
  • 哪种类型的权限被分配给特定用户?
  • 特定组的所有用户是否都具有相同的权限?

答案1

有没有什么命令可以让我知道一个组拥有哪种类型的权限?

不,没有办法知道组授予访问权限的所有内容。

原因是该组织本身并不跟踪它的使用情况。例如,该文件/foo可能属于 组 所有bar。文件本身说“我属于酒吧”,该组织并没有说“/foo属于我”。
因此,您可以遍历文件系统,查找属于 group 的内容bar,但事情并不那么简单。您还可以拥有配置为允许某些组中的用户访问资源的软件。例如,某些 Linux 发行版将对该su实用程序的访问限制为组成员wheel。或者您可能将 Samba 配置为仅将共享导出到特定组的成员。
 

如果您想查找访问权限可能因组成员身份而异的文件,您可以find针对该组拥有的文件执行以下操作:

find / -group bar

然而,这不会考虑文件系统 ACL。虽然典型设置中不使用文件系统 ACL,但如果您也想搜索它们,命令会变得更加复杂:

find / \( -group bar -o -exec sh -c 'getfacl "$1" | grep -q "^group:bar:"' -- {} \; \) -print

哪种类型的权限被分配给特定用户?

特定组的所有用户是否都具有相同的权限?

如果我们仍在讨论基于组的权限,那么该组的所有用户都将通过加入该组而被授予相同的权限。

但是,用户可以位于多个组中,其中,在组中foo授予用户对某些内容的访问权限,而在组中则bar授予他们管理权限。

答案2

对于特定用户:

$ groups <username>

显示他们所属的 Unix 组。

例子

$ groups saml
saml : saml wheel wireshark

至于你关于“特权”的问题。它们的真正含义并不像您所认为的那样。组仅允许属于 X 组成员的用户访问分配给 X 组的磁盘上存在的文件和目录。除此之外,它们实际上不执行任何操作。

至于你关于 X 组成员拥有相同特权的第三个问题,是的,X 组中的每个人都拥有相同级别的特权。

相关内容