linux额外的权限标志位

linux权限标志位

我们知道在linux的权限标志位中有rwxs这些常用的来标示文件权限,其实强大的linux不仅支持这些,它还支持一些额外的标志位(和内核相关),例如比较常见的一个需求是:我希望这个文件不能被删除,这时候就可以用额外的权限标记位很方便的实现该功能:

1
chattr +i filename

i表示不可删除,这个时候执行rm是没有办法删除文件的,除非使用chattr -i filename将该标记为擦除

The letters ‘aAcCdDeijPsStTu’ select the new attributes for the files: append only (a), no atime updates (A), compressed (c),no copy on write (C), no dump (d), synchronous directory updates (D), extent format (e), immutable (i), data journalling (j), project hierarchy (P), secure deletion (s), synchronous updates (S), no tail-merging (t), top of directory hierarchy (T), and undeletable (u).

简单翻译一下:

1
2
3
4
5
6
7
8
9
10
11
12
13
+ :在原有参数设定基础上,追加参数。
- :在原有参数设定基础上,移除参数。
= :更新为指定参数设定。
A:文件或目录的 atime (access time)不可被修改(modified), 可以有效预防例如手提电脑磁盘I/O错误的发生。
S:硬盘I/O同步选项,功能类似sync。
a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。
c:即compresse,设定文件是否经压缩后再存储。读取时需要经过自动解压操作。
d:即no dump,设定文件不能成为dump程序的备份目标。
i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。
j:即journal,设定此参数使得当通过mount参数:data=ordered 或者 data=writeback 挂 载的文件系统,文件在写入时会先被记录(在journal中)。如果filesystem被设定参数为 data=journal,则该参数自动失效。
s:保密性地删除文件或目录,即硬盘空间被全部收回。
u:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion。
各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。

相应的我们使用lsattr可以查看文件的权限标志位:)

hello http://just4fun.im/2018/03/10/linux额外的权限标志位/ bye