chmod与ACL之间的区别


13

我的理解chmodchown如何权限位的工作,但还有另一种许可系统内部的Linux,ACLsetfaclgetfacl,所以这让我不知道。

这两个权限控制系统之间有什么区别?他们会互相干扰吗?

Answers:


7

一种并不比另一种更好,它们只是不同的思维方式和方式。

您可以在同一路径上使用两个权限系统而不会出现问题。

在修改所有者,拥有组和其他权限时,它们会相互干扰:从setfacl设置这些权限的当前值时,实际上将设置posix权限,而不是ACL权限。

Posix权限仅允许所有者,所有者组和“所有人”权限,而ACL允许多个“所有者”用户和组。ACL还允许为文件夹中的新文件设置默认权限。

您可以在apparmor或selinux的基础上添加更多权限管理,以实现更严格的控制。


1
我是否正确假设我在运行ls -l时仅会看到posix权限,而不会进一步限制文件的ACL权限呢?还是会遵守posix权限?
mFeinstein '17

3
@mFeinstein视情况而定。在Linux下,ls -l将a +放在权限字符的末尾以指示存在ACL。如果存在ACL,则基本权限不能说明全部内容:ACL覆盖POSIX权限。
吉尔(Gilles)'所以

哦,太好了!+至少这使我无法措手不及
mFeinstein '17

3

chmod设置的经典Unix权限(读/写/执行,用户/组/其他)比ACL的存在时间长得多。如果ACL从一开始就存在,那么我们就不会有chmod了。但是,由于chmod已经存在很长时间了,因此许多应用程序都将其称为它,许多存档格式都支持经典权限,等等。它们充当了ACL的起点。

看到的用户和组所有者优先于文件的权限访问控制列表的优先级,当用户属于多个组的访问控制是如何工作的ACL中的存在的更详细的处理。

chmod命令还控制一些标志,这些标志不是真正的权限,但是仍然经常被称为权限:setuid,setgidsticky bit。这些并不是真正的权限,因为它们不影响对文件授权的访问,而是影响文件中的某些操作在被授权后如何工作。ACL没有这样的东西。


因此,为了真正理解文件的权限,我必须同时检查ACL和ls -l?。
mFeinstein '17

有没有办法查看文件/目录上是否有任何特定于ACL的权限?
mFeinstein '17

@mFeinstein查看所显示的权限是否在结尾处ls有多余+getfacl字符,或运行命令以显示所有权限,包括ACL。
吉尔斯(Gilles)'所以

1
只是getfacl myFile
mFeinstein '17

1
是的,在要检查的路径上获取getfacl。
Zulgrib
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.