chmod/chown 即使不需要也总是写更新

问题描述

每当我在某些 zfs 文件系统上执行“zfs diff”时,输出都会被“修改过的”用户文件弄得杂乱无章,这些文件通过对它们运行 chmod 来“更改”(在 cron 中,以确保某些安全方面)。

问题:当权限已经达到我想要的状态时,是否有一种简单的方法可以让我在文件层次结构上强制 (POSIX) 权限和所有权而无需 chmod/chown 接触它们?

解决方法

除了 cron 的安全性 听起来是个坏主意之外,简单的答案是“”。 chmodchown 都没有标记来仅在您想要的状态不匹配时修改文件/目录

您有两个选择:

  • 为工具编写补丁
  • 写一个包装器,就像 larsks 在上面的评论中建议的那样

不过,这取决于文件系统/目录结构的大小,这可能会显着增加您的 cron 作业的运行时间。

,

你可以做类似的事情

find dir/ -type f -perm /0111 -exec chmod a-x {} +

而不是无条件的 chmod 来删除权限。 (此处的所有 x 权限。)