![给定路径下预定义的umask](https://linux22.com/image/27402/%E7%BB%99%E5%AE%9A%E8%B7%AF%E5%BE%84%E4%B8%8B%E9%A2%84%E5%AE%9A%E4%B9%89%E7%9A%84umask%20.png)
可能的重复:
如何为目录中的所有文件夹/文件设置默认文件权限?
假设我有默认的 umask umask1
,.我想要在特定路径下创建/修改的所有文件/文件夹
/path/to/foo
有一个不同的umask,umask2
并继续用于umask1
其他一切。有没有办法让 shell 自动为我执行此操作?如果是这样,怎么办?
有没有办法为属于 groupID 的其他人执行此操作/path/to/foo
?
答案1
您需要使用默认值ACL。
请注意,语法有点不同,并且基于正向权限,而不是负向权限掩码,例如rwxr-x---
will be750
而不是027
。
例如
setfacl -m d:u::7,g::5,o:0 /path/to/foo
或者
setfacl -m d:u::rwx,g::r-x,o:- /path/to/foo
将使在默认情况下创建的文件和目录/path/to/foo
为750
= rwxr-x---
。
如果您已经有一些子文件夹,您还需要添加标志-R
以递归地设置它们的默认值。
如果出现Operation not supported
错误,则可能没有在文件系统上启用 ACL。正确答案取决于很多因素,但如果您在使用 ext2/ext3/ext4 的 Linux 上,请尝试
sudo mount -o remount,acl <mount point>
或者
sudo tune2fs -o acl <file system>
答案2
您可以使用特定权限和有效 umask 挂载目录bindfs
。看http://www.cs.helsinki.fi/u/partel/bindfs_docs/bindfs.1.html。