![etckeeper、Git checkout 和 /etc 中的损坏文件权限](https://linux22.com/image/554192/etckeeper%E3%80%81Git%20checkout%20%E5%92%8C%20%2Fetc%20%E4%B8%AD%E7%9A%84%E6%8D%9F%E5%9D%8F%E6%96%87%E4%BB%B6%E6%9D%83%E9%99%90.png)
我想弄清楚为什么etckeeper提交,我在重启时遇到了问题(多亏了这个好东西,已经解决了)。
我玩了 etckeeper,git checkout some_commit_sha
快速看了一下然后git checkout master
。
看来我的文件权限/etc
在这些操作之后被破坏了。包括在内的所有文件ssh_host_rsa_key passwd-, shadow-
都是rw-r--r--
。我不知道 Git 不保存文件权限。
现在我已修复所有问题(我希望我没有遗漏任何东西)。
获取早期状态/etc
、查看周围并返回到具有正确文件权限的主控的正确方法是什么?
答案1
根据文档(见下文),你必须运行
etckeeper init
在签出任何文件后将其恢复权限。git 不能直接存储文件权限,因此它由 etckeeper 处理,并且您需要在签出后再次运行 init 以恢复它们。
文档部分,
您可以使用任何您喜欢的 git 命令,但请记住,如果您签出不同的分支或旧版本,git 将直接在系统的 /etc 上运行。如果您决定签出分支或标签,请确保再次运行“etckeeper init”,以获取任何元数据更改:
git checkout april_first_joke_etc
etckeeper 初始化