在Linux中,除了设置文件或目录的读(r)、写(w)、执行(x)权限外,对于某些有特殊要求的文件(如服务器日志)还可以追加隐藏权限的设定。这些隐藏权限包括:
Append only (a),compressed (c),no dump (d),immutable (i),data journalling (j),secure deletion (s),no tail-merging (t),undeletable (u),no atime updates (A),synchronous directory updates (D),synchronous updates (S),and top of directory hierarchy (T).
比如给某文件设置了a权限,表明该文件只能增加数据,而不能删除和修改数据;
设置了A权限,表明该文件在存取时,它的atime不会改变;
设置了i权限,则无法再删除、修改此文件。此选项对于某些系统重要文件很有必要,只有root能设置i权限。
隐藏权限涉及到两个命令,分别为chattr(修改权限,通过+或-的方式),lsattr(显示文件或目录的隐藏权限)。比如:
上例中,给attrtest文件添加了i权限,则即使root用户也无法删除。想要删除,则需要去掉i权限。
各选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE处理能力(标识)的进程能够施加该选项。