我想创建一个目录,例如:
/公共/全部
但我希望这样,如果您在 all 中创建一个文件,所有者就是 root,但任何有权访问 /public/all 文件夹的人都可以删除/编辑/等该文件,只是不能更改权限。(如果需要,我将使用自己创建的“setx”应用程序来更改执行值。)
原因是,我不希望您能够拒绝其他用户对 /public/all 中的文件的写入/读取权限。我听说目录上的 setuid 对此不起作用。
答案1
您不能这样做;初始所有者始终是对象的创建者。
您可以做的是设置默认 ACL 以自动允许每个人读取/写入:
setfacl -m default:u::rwx,default:g::rwx,default:o::rwx /public/all
还可以选择设置默认组:
chown :nobody /public/all
chmod g+s /public/all
然而,这些都不能阻止业主改变稍后再获取权限。
另一种解决方案是使用以下方法监视目录通知(使用incron
)并在创建时自动运行chown
。将其放入 incrontab:
/public/all IN_CREATE chown nobody:nobody $@/$#; chmod 0666 $@/$#