如何在 Linux 中设置文件创建的默认用户?

如何在 Linux 中设置文件创建的默认用户?

我想创建一个目录,例如:

/公共/全部

但我希望这样,如果您在 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 $@/$#

相关内容