我的工作场所中的应用程序有一个非常重要的文件,我需要确保它不会被删除,该怎么办?
我的工作场所中的应用程序有一个非常重要的文件,我需要确保它不会被删除,该怎么办?
Answers:
是的,您可以将文件的属性更改为只读。
该命令是:
chattr +i filename
并禁用它:
chattr -i filename
来自man chattr
:
具有
i
属性的文件无法修改:不能删除或重命名,不能创建与此文件的链接,也不能将数据写入该文件。只有超级用户或拥有此CAP_LINUX_IMMUTABLE
功能的进程才能设置或清除此属性。
chflags schg
将其刻录到CD。将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
mount -o remount,rw readonlyfolder/ && rm readonlyfolder/permanent.txt
squashfs
或cramfs
压缩或只读的。它需要一个特殊的工具来构建文件系统。
Linux具有所谓的bind-mount选项,它是一个非常强大且有用的功能,需要了解:
% 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
—此处要做的是将文件本身绑定到文件(是的,您可以在Linux中完成),然后将其重新安装在R / O模式下。当然,也可以对目录执行此操作。
您还应该创建指向该文件的多个硬链接。这些应该位于普通用户无法访问的各个位置。
这样,即使他们确实设法覆盖了对chattr的保护,数据也将保留,您可以轻松地将其还原到应用程序正在寻找的位置。
在Linux上,一成不变的标志只支持某些类型的文件系统(最原生的像的ext4
,xfs
,btrfs
...)
在不支持文件系统的文件系统上,另一种选择是以只读模式将文件绑定安装在其自身上。这必须分两步完成:
mount --bind file file
mount -o remount,bind,ro file
但是,这必须在每次引导时完成,例如通过/etc/fstab
。
umount
该文件的所有人再次获得写权限
在对Kevin的回答的评论中,Jerry提到:
好吧,当然要定期备份文件,我只想再加上一层保护,以防止有时会在具有root用户权限的情况下使用的用户受到保护。–
我将假设您无法更改此做法,因为这是一个非常非常糟糕的主意。
有关使用只读设备的所有建议都存在相同的问题-它使您可以在需要时进行PITA合法更改。对于可锁定的驱动器(例如SD卡),您会遇到这样的问题:在解锁驱动器以进行更改时,您突然变得脆弱。
我所建议的是将另一台计算机设置为NFS服务器,并将具有重要文件的目录共享到用户具有root权限的计算机。将挂载共享为只读,这样您不信任用户的计算机就无法进行任何修改。当您需要合法地进行更改时,可以连接到NFS服务器并在此处进行更改。
我们将其用于我们的Web服务器,这样针对该Web服务器的成功利用将无法插入或更改该服务器随后将回发的任何文件或更改配置。
请注意,可以以与所有与安装点相关的设置相同的方式来绕过此设置:
为什么不创建ISO 9660映像,该映像在设计上是只读的?
挂载ISO映像,它看起来像CD-ROM,但是具有硬盘驱动器的性能,并且所挂载映像上的文件与物理CD-ROM上的文件一样安全地被删除。
假设将文件中的不可变位设置为不足够的话,将敏感文件刻录到CD并从CD-ROM运行它的想法很有趣。
从物理CD上运行有潜在的负面问题,包括性能(CD-ROM驱动器比硬盘驱动器或SSD慢得多,而且慢得多)。好心人可能会将CD-ROM取出,并用他们需要访问的其他光盘代替。恶意方很可能只是将光盘取出并放入微波炉(或垃圾桶)中,从而“删除”您的文件。不得不为该文件和其他因素配备专用的硬件CD-ROM驱动器带来的不便。
但是OP明确指出,主要目的是防止意外删除,而不是恶意行为,并且有问题的文件应备份并在发生事故时可恢复,但非常希望文件不要被意外删除。
似乎从已装载的ISO映像运行文件将满足要求。
shred
到那时,彻底的调整就可以了。但是,除非您拒绝对计算机的物理访问,将物理CD从驱动器中弹出并扔到垃圾箱中似乎比卸除和覆盖ISO文件要容易得多,尽管两者都很容易。OP表示定期备份重要文件,因此这仅是防止意外损坏而不是恶意破坏的一种额外措施。
chattr +i
可以帮助反而会使文件设置为只读,以及(和可以被覆盖chattr -i
),你也可以尝试用SELINUX等保护它