这是情景;
我需要授权用户在/opt/dev-folder/执行活动。 开发人员经常更改文件,有时他们replace或删除原始文件。
我已经与sudo分配权限。 现在我想要一些想法,当开发人员运行rm -f file-name时,如何将文件自动备份。
例如:
sudo rm -rf file-name.php
在后台,应该像下面这样做:
mv file-name.php /backup/
任何想法或更好的build议将不胜感激。
你不能。
(你可以 – 对于某些文件系统有黑客攻击,比如Sirex指出的“ 写入时EXT3复制” ,但在所有的Unix平台上都没有通用的方法。
让我们看看一些可能的实现和问题/规避,只是为了好玩:
复制写入文件系统扩展
这些是最简单的,但是它们要求你使用一个具有写入时拷贝扩展的文件系统。 不同的操作系统到操作系统的实现(甚至可能不在你的目标平台上),他们咀嚼大量的磁盘空间,保持阴影副本。
别名rm到别的东西
直到有人运行/bin/rm (或使用rm命令以外的工具删除文件:GUI文件浏览器, unlink()调用等)
如果sudo涉及,这种方法很可能会中断。
将rmreplace为脚本或自定义二进制文件
一个好主意,但是取代核心系统二进制文件通常是一件坏事。
它可能工作,但是你仍然需要一些实际上使数据消失的东西,或者你回到了同一条船上,select(1)咀嚼磁盘空间的gobs。 这意味着或者rm挂在/bin/realrm类的东西上(减less到大小写(2) – 某人只能运行realrm ,你可以通过使它只能被root执行来缓解)或者你有其他的清理过程。
你可以做到,但是这是很多的工作。
我上面的分析绝不是详尽无遗 – 考虑到一些问题,版本控制是更好的select(将敏感目录置于版本控制之下,删除某些东西时,可以通过删除预删除版本来恢复)。
另一个防止键盘松动的传统预防措施是使用BACKUP ,从中恢复意外删除的文件。