我想创建一个目录,例如:
/公共/所有
但我想要这样,如果你创建一个文件,所有者是 root,但任何有权访问 /public/all 文件夹的人都可以删除/编辑/等文件,只是不更改权限。(如果需要,我将使用自创建的“setx”应用程序来更改执行值。)
为此,我不希望您能够拒绝其他用户对 /public/all 中的文件的写/读访问。我听说目录上的 setuid 对此不起作用。
你不可以做这个; 初始所有者始终是对象的创建者。
您可以做的是将默认 ACL 设置为自动允许对所有人进行读/写:
setfacl -m default:u::rwx,default:g::rwx,default:o::rwx /public/all
Run Code Online (Sandbox Code Playgroud)
还可以选择设置默认组:
chown :nobody /public/all
chmod g+s /public/all
Run Code Online (Sandbox Code Playgroud)
但是,这些都不会阻止所有者以后更改权限。
另一种解决方案是使用inotify(使用incron
)监视目录并chown
在创建时自动运行。把它放到 incrontab 中:
/public/all IN_CREATE chown nobody:nobody $@/$#; chmod 0666 $@/$#
Run Code Online (Sandbox Code Playgroud)