之前介绍了让普通用户有root权限的setuid权限,以及除了自己之外别人都无法删除的粘着位t权限。除了这两种之外,linux文件系统还有两种很实用的权限i和a
i:不可修改权限 例:chattr u+i filename 则filename文件就不可修改,无论任何人,如果需要修改需要先删除i权限,用chattr -i filename就可以了。查看文件是否设置了i权限用lsattr filename。
测试如下
01 |
#创建text文件,这个文件root有读写的权限 |
02 |
[root@ test tmp] # touch test
|
03 |
[root@ test tmp] # ll test
|
04 |
-rw-r--r-- 1 root root 0 Oct 29 15:03 test
|
05 |
06 |
#然后给test文件赋予i权限 |
07 |
#(注意,修改和查看i权限位需要特殊的chattr和lsattr命令) |
08 |
[root@ test tmp] # chattr +i test
|
09 |
[root@ test tmp] # lsattr test
|
10 |
----i-------- test
|
11 |
#测试使用超管root来修改和删除这个文件 |
12 |
[root@ test tmp] # echo 123>test
|
13 |
- bash : test : Permission denied
|
14 |
[root@ test tmp] # \rm test
|
15 |
rm : remove write-protected regular empty file <code> test '? y
|
16 |
rm : cannot remove </code> test ': Operation not permitted
|
17 |
[root@ test tmp] # lsattr test
|
18 |
----i-------- test
|
19 |
#全部报错无法删除,这样来保障这个文件避免被别人篡改和删除。 |
去除i权限使用chattr -i filename
如果对/etc/shadow添加了i权限,那么就没有办法添加删除和修改linux账号了,可以作为安全加固的一个小方法
a:只追加权限, 对于日志系统很好用,这个权限让目标文件只能追加,不能删除,而且不能通过编辑器追加。可以使用chattr +a设置追加权限。