etckeeper、Git checkout 和 /etc 中损坏的文件权限

kod*_*ddo 8 git etckeeper file-permissions

我想弄清楚为什么在etckeeper提交后,我在重启时遇到了问题(由于这个伟大的事情已经解决了)。

我和 etckeeper 一起玩,git checkout some_commit_sha快速浏览了一下,然后git checkout master.

/etc在这些操作之后,我的文件权限似乎被破坏了。包括所有文件ssh_host_rsa_key passwd-, shadow-rw-r--r--。我不知道 Git 不保存文件权限。

现在我修复了所有这些(我希望我没有错过任何东西)。

获得/etc.

Eig*_*ony 11

根据文档(见下文),您必须运行

etckeeper init
Run Code Online (Sandbox Code Playgroud)

在检出任何文件以恢复权限后。git 不能直接存储文件权限,因此它由 etckeeper 处理,您需要再次运行 init 以在结帐后恢复它们。

文档部分,

您可以使用任何您喜欢的 git 命令,但请记住,如果您查看不同的分支或旧版本,git 将直接在您系统的 /etc 上运行。如果您决定签出分支或标签,请确保再次运行“etckeeper init”以获取任何元数据更改:

git checkout april_first_joke_etc

etckeeper 初始化

  • 很高兴知道这一点。他有一个由两部分组成的问题。“环顾四周”的正确方法以及恢复权限的正确方法。“环顾四周”的正确方法不是将 /etc git repo 克隆到另一个目录并在那里进行 diff 和 checkouts 直到他重启问题的根本原因得到解决? (2认同)