ILD

file attributes
作者:Yuan Jianpeng 邮箱:yuanjp89@163.com
发布时间:2024-11-14 站点:Inside Linux Development

我们常见的文件:mode、owner、类型、大小、修改时间。是file status,使用stat()系统调用和stat命令进行统计。


而file attributes是文件属性,是一个32位的flags。这个属性只存在于ext4等部分文件系统。


使用chattr命令,来设置文件属性。

chattr +-=[aAcCdDeFijmPsStTux] <path>


比较有用的属性:

a:只允许以append模式写

i:immutable,文件不能被修改:包括删除和重命名。


比如我们修改了一个系统配置文件,为了防止系统再次修改,可以:

cp /dev/null /etc/systemd/zram-generator.conf  

chattr +i  /etc/systemd/zram-generator.conf

清空zram配置,并且防止系统再次修改。这样可以永久禁止基于zram的swap。


使用lsattr命令,可以查看属性。

$ sudo chattr +i access.c

$ lsattr access.c

----i----------------- access.c

$ > access.c

-bash: access.c: Operation not permitted


file attributes使用ioctl的方式进行设置和读取:

ioctl(3, FS_IOC_GETFLAGS, [FS_IMMUTABLE_FL]) = 0

ioctl(3, FS_IOC_SETFLAGS, [0])          = -1 EPERM (Operation not permitted)


值得注意的是:

修改file attributes需要root权限。文件所有者也不能修改。


Copyright © linuxdev.cc 2017-2024. Some Rights Reserved.