我在多个SE网站上搜索过,但似乎没有这个问题的答案。使用setgid
位,它允许保留父组和粘性位的所有权,尽管这对权限没有帮助。另一方面,ACL 为给定共享目录中创建的文件和目录设置相同的权限。
假设共享 dir( /path/to/shared
) 具有权限3775
和所有权root:shared-group
。
如何设置此共享目录的默认权限,以便新创建的文件的权限设置为644
,而新创建的目录的权限设置为775
?
简而言之,新创建的文件应该是组可读的,但目录是组可写的。
使用 ACL 并设置组权限,rwX
甚至可以使文件组可写。
有些答案相似,但不完全相同; (ACL 默认值:文件与目录,在 Linux 上获取新文件继承组权限,https://stackoverflow.com/questions/580584/setting-default-permissions-for-newly-created-files-and-sub-directories-under-a,使用 setfacl 允许组成员写入目录中的任何文件)
这可行吗?
答案1
不,您不能使用 POSIX ACL 执行此操作:只能为文件/目录/等一起设置默认权限。
出于好奇:您尝试完成什么样的用例/工作流程?
在您描述的设置中,用户只需备份(读取)文件、删除原始文件并使用相同名称重新创建它。这些操作只需要用户拥有的包含目录的写权限。文件所有者实际上已更改为新用户,现在他们可以按照自己的意愿使用它(包括更改权限)。