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

chmod/chown always writing updates even if not required

每当我在某些 zfs 文件系统上执行“zfs diff”时,输出会被 运行 chmod 对其进行“更改”的“已修改”用户文件弄乱(在 cron 中,以确保一些安全方面)。

问题:有没有一种简单的方法我错过了强制 (POSIX) 文件层次结构的权限和所有权,而没有 chmod/chown 在权限已经如我所愿时接触它们?

除了 cron 的安全性听起来像是个坏主意之外,简单的答案是“”。 chmodchown 都没有标志来执行 修改 file/directory 只有当你想要的状态不匹配 .

你有两个选择:

  • 为工具编写补丁
  • 按照上面评论中 larsks 的建议写一个包装器

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

你可以这样做

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

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