如果我运行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 组中的每个人都拥有相同级别的特权。