Shell 将文件设置为不可修改

Shell 将文件设置为不可修改,在所有的Linux文件系统中都可以设置读、写、可执行以及setuid权限。除此之外,扩展文件系统(例如ext2、ext3、ext4)还支持其他属性。

其中一种扩展属性就是可以设置不可修改的文件,一旦设置,包括root在内的任何用户都无法删除该文件,除非撤销其不可修改的属性。可以利用命令df -T或是通过查看 /etc/mtab文件来确定文件系统的类型。/etc/mtab文件的第一列指定了分区设备路径(例如/dev/sda5),第三列指定了文件系统类型(例如ext3)。

不可修改属性是避免文件被篡改的安全手段之一,/etc/resolv.conf文件就是这样的一个例子。该文件包含了一组DNS服务器列表。DNS服务器负责将域名(例如packtpub.com)转换成IP地址。它通常被设置成你所属ISP的DNS服务器地址。但如果你更喜欢使用第三方的DNS服务器,可以修改/etc/resolv.conf,将其指向所选的服务器。可当下次你再连接到ISP时,/etc/resolv.conf又会恢复到之前的设置。为了避免这种情况,需要将/etc/resolv.conf 设置成不可修改。本章中你将会看到如何根据需要,将文件设置为不可修改或可修改状态。

Shell将文件设置为不可修改

预备知识

chattr命令可用于更改扩展属性。它能够将文件设置为不可修改,也可以修改其他属性来调节文件系统同步或压缩率。

实战演练

通过以下步骤将文件设置为不可修改。

(1) 使用chatter将文件设置为不可修改:

# chattr +i file

(2) 现在文件已经无法修改了。来试试下面的命令:

rm file
rm: cannot remove 'file': Operation not permitted

(3) 如果需要使文件恢复可写状态,撤销不可修改属性即可:

chattr -i file

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程