目录上的默认ACL由在该目录下创建的文件和子目录继承。
在默认情况下,子目录应该是可执行的(即cd可执行的),但文件不应该是可执行的,这似乎是一个常见的要求。
如何为子目录和(子)文件设置单独的默认(即要继承)ACL,或者以其他方式实现这一效果?
增编:
树莓Pi模型B,Raspbian,get/setfacl 2.2.51
cat /proc/version
Linux version 3.6.11+ (dc4@dc4-arm-01) (gcc version 4.7.2 20120731 (prerelease) (crosstool-NG linaro-1.13.1+bzr2458 - Linaro GCC 2012.08) ) #474 PREEMPT Thu Jun 13 17:14:42 BST 2013发布于 2013-11-03 21:47:52
只有一个默认设置,但是当一个文件继承了一个ACL时,它会被一个掩码所修改,这个掩码是根据程序打开一个写入文件时设置的模式设置的。(该模式实际上是由umask修改的-移除了umask中的位,因此模式666加上umask 002变成664。)例如,如果模式为664,则掩码将为rw-,这将导致所有命名all和组的x标志被屏蔽,因此实际上没有执行权限。如果使用该掩码,则从模式的组位或chmod的组位创建掩码。
因此,如果您创建一个普通文件,它将在ACL中设置x,但它将被屏蔽。默认情况下,目录是用模式755或775创建的(取决于umask),因此掩码将是rwx或r-x。所以ACL中的x标志仍然有效。
我之前对首都X感到困惑。这仅当您一次为多个文件设置ACL时才适用。然后,可以将权限设置为X,这将导致目录具有x,而文件则不会。
https://unix.stackexchange.com/questions/98712
复制相似问题