如何保持文件/文件夹ownserhip和权限随着时间的推移?

我们有许多我们的(debian)服务器上的文件夹,这些服务器需要不同的用户(包括真实系统和系统)能够读取和/或写入。 我们已经提出了一个特定的文件权限和所有权模型,让所有人都感到高兴,但是由于各种原因,随着用户修改东西,这个模型随着时间的推移而被取消。

我们已经尝试设置诸如umask之类的设置,并在组权限上设置粘性位,以保持正确的权限和所有权,但这些努力往往不够。

理想情况下,我们将在configuration文件中指定我们的文件权限和所有权模型,并拥有一个强制执行此模型的守护进程。 有这样的事情吗?

(谷歌search会build议不,但我宁愿不重新发明轮子,如果这已经解决了)

为了回答我自己的问题,我写了一个小的守护进程,它接受一个简单的YAMLconfiguration文件,然后强制文件所有权,组和权限。 它被称为强制( https://github.com/torrance/enforced ) – 你需要Go(golang)来构build它。

它对configuration下的文件夹进行初始search,然后设置自己以监视任何文件更改,立即纠正任何更改的文件。

我希望对别人有帮助。

您可以使用fam(文件变更监视守护进程)在文件被修改时通知(如果访问权限被更改,则报告的fam事件)。 然后你可以统计文件,检查是否只是mtime已经改变或ctime和必要时重置访问权限。

如果不需要用户可以更改访问权限,则可以等待文件创build事件(更less),更改文件所有者,重置访问权限,然后完成:不要再次出现此文件的问题。

奇怪:至less据我所知,Linux不提供访问权限更改的限制。

这个问题也可以被修改访问权限的FUSE文件系统使用。 我不知道这样的东西是否已经存在,但是有这么多的FUSE模块,这是值得一检查。

我认为从crontab运行一个bash脚本将是我对这个单一问题的答案。

由于你声明文件权限不时被搞砸了,所以设置一个deamon,甚至是fam,检查权限的改变是否会“过度”(恕我直言)。

设置一个cron作业来运行,每周一次,甚至每天一次,修复权限将是很好的。