我有一个非常重要的文件,在我的工作场所使用的应用程序,我需要确保它不会被删除,我该怎么做?
是的,您可以将文件的属性更改为只读。
该命令是:
chattr +i filename
并禁用它:
chattr -i filename
从man chattr
:
具有
i
属性的文件不能被修改:不能被删除或重命名,不能创build该文件的链接,也不能将数据写入文件。 只有拥有CAP_LINUX_IMMUTABLE
能力的超级用户或进程才能设置或清除该属性。
烧成CD。 把光盘放入CD-ROM驱动器并从那里访问。
例:
# dd if=/dev/zero of=readonly.img bs=1024 count=1024 # mkfs.ext2 readonly.img # mkdir readonlyfolder # mount readonly.img readonlyfolder/ # echo "can't delete this" > readonlyfolder/permanent.txt # umount readonlyfolder # mount -o ro readonly.img readonlyfolder # cat readonlyfolder/permanent.txt can't delete this # rm readonlyfolder/permanent.txt rm: cannot remove `readonlyfolder/permanent.txt': Read-only file system
你应该创build多个硬链接到文件。 这些应该位于普通用户无法访问的各个位置。
这样,即使他们设法覆盖chattr保护,数据也会保留下来,您可以轻松地将其恢复到应用程序正在查找的位置。
Linux有所谓的绑定挂载选项,这是相当强大和有用的function知道 :
% cd $TMP && mkdir usebindmountluke && cd usebindmountluke % echo usebindmountluke > preciousfile % sudo mount -B preciousfile preciousfile % sudo mount -oremount,ro preciousfile % echo sowhat > preciousfile zsh: read-only file system: preciousfile % rm preciousfile rm: cannot remove 'preciousfile': Read-only file system
– 这里所做的是将bind-mount文件粘贴到自身上(是的,您可以在Linux中执行此操作),然后将其重新安装在R / O模式下。 当然这也可以做到目录。
其他人已经回答了你提出的问题。 正如@Sven在评论中提到的那样,“如何确保我永远不会丢失文件?”这个问题的一般解决scheme。 是创build文件的备份。 复制该文件并将其存储在多个位置。 另外,如果这个文件非常重要,而且你的公司有一个用备份服务备份重要数据的策略,你可能会考虑把这个文件包含在服务中。
在Linux上,只有某些types的文件系统(大部分本地文件系统,如ext4
, xfs
, btrfs
等)支持immutable标志。
在不受支持的文件系统上,另一种select是以只读模式绑定安装文件。 这必须分两步进行:
mount --bind file file mount -o remount,bind,ro file
这必须在每次启动时完成,例如通过/etc/fstab
。
为什么不创build一个ISO 9660图像,这是devise只读?
挂载ISO映像,它看起来像一个CD-ROM,但是具有硬盘驱动器的性能,挂载映像上的文件将与物理CD-ROM上的文件一样安全。
将敏感文件刻录到CD并从CD-ROM上运行它的想法很有意思,假设在文件上设置不可变位是不够的。
从物理CD上运行它,包括性能(CD-ROM驱动器比硬盘驱动器或SSD慢得多)要有潜在的负面问题。 CD-ROM有可能被一个善意的个人删除,而被另一个他们需要访问的光盘取代。 有可能是恶意方把光盘拿出来扔在微波炉(或垃圾箱)里面,从而“删除”你的文件。 有一个专门的硬件CD-ROM驱动器只是为了一个文件,以及其他因素的不便。
但是,OP明确指出,主要意图是防止意外删除,而不是针对恶意行为,并且在发生事故时备份和恢复文件,但是非常希望文件永远不会被删除被意外删除。
看来,从安装的ISO映像运行文件将满足要求。
杰里在评论凯文的回答时提到:
那么,当然这个文件是经常备份的,我只是想要另外一层对用户有保护作用,这个用户有时候是以root用户的权限来操作的。 –
我会假设你不能改变这种做法,因为这是一个非常糟糕的主意。
所有关于使用只读设备的build议都有同样的问题 – 它使得它成为一个PITA,您可以在需要时进行合法的更改。 对于可locking的驱动器(如SD卡),遇到的问题是,当您将其解锁以进行更改时,您突然受到攻击。
我会build议,而不是build立另一台机器作为NFS服务器,并与重要的文件共享目录到用户有根的机器。 以只读方式共享安装,以便您不信任的用户的计算机不能进行任何修改。 当您需要合法地进行更改时,可以连接到NFS服务器并在那里进行更改。
我们将其用于我们的Web服务器,以便成功利用Web服务器将无法插入或更改服务器将返回的任何文件或更改configuration。
请注意,这可以通过与所有与安装点相关的方式相同的方式绕过: