如何通过 ACL 保护子文件夹(即 .git 文件夹)的删除?

如何通过 ACL 保护子文件夹(即 .git 文件夹)的删除?

我的开发路径中有一个相当大的 git 存储库档案,其中许多包含我可能尚未发布的分支或存储。

但是我想确保我最终无缘无故地删除了一个文件夹及其 .git 文件夹,而我确实希望能够在其上写入。

所以想知道是否有这样的方法来实现这一目标。

基本上是这样的:

repo
├── .git
│   ├── config
│   ├── index
.   .
.   .
.   .

我希望.git在执行操作时防止删除rm -rf repo,但确保我仍然可以在读写模式下访问文件.git/config(和朋友),并且能够向.git/自身写入新文件。

有什么办法吗?到目前为止,我尝试了一些技巧,但没有一个给我这样的东西。也许使用安装座可以提供更多帮助,但我想将它们全部存储在同一个地方。

答案1

您可以使用rm-protection

通过运行安装它:-

$ pip install rm-protection

该程序的二进制文件是rm-p.为了方便起见,添加别名:-

$ echo 'alias rm="rm-p"' >> ~/.bashrc

由于您想保护该.git文件夹,请运行:-

$ protect .git
Question for .git: Do you really want to delete me?
Answer: Yes, I really do

您需要给它一个安全问题和答案然后当您尝试删除它时:-

$ rm -rf .git/
rm-p: .git: Do you really want to delete me?
Answer: No
rm-p: Wrong answer! .git will not be removed

该程序的工作原理是创建一个..git.rm-protection包含问题和答案的文件。

希望这可以帮助 ;)

相关内容