在我的运行 Arch 的笔记本电脑上,我在 ~/git 下克隆了一堆 git 存储库。我的问题是,克隆中的所有可执行文件都会不时地(大概一个月一次左右)丢失其可执行位。这不是由经过git,因为git ls-files --cached
显示相关文件的模式为 100755,并git diff
显示如下输出:
diff --git a/setup.py b/setup.py
old mode 100755
new mode 100644
这就是我首先注意到这件事发生的原因。
我查看了很多东西。这些是 /home 的挂载选项:
/dev/sda4 on /home type btrfs (rw,relatime,ssd,space_cache)
没有可疑的 systemd 计时器;只有 logrotate、mandb、grpck、pwck 和 systemd-tmpfiles 每天运行。也没有 cron 作业。systemd 日志没有提到任何与问题相关的内容,我搜索了权限字符串、我的用户名、路径等。
我的 umask 是0022
,因此阻止新创建的文件设置写入位。git 存储库上方的所有目录均未设置粘滞位。
我很困惑,这是什么原因造成的?或者我如何才能找出原因?也许用inotify
和来破解一些东西lsof
?很难在发生问题的过程中抓住它,因为这种情况很少发生。