Linux 第二周学习笔记(11)
2.17
隐藏权限
lsattr_chattr
chattr
命令: 是设置吟唱隐藏权限的命令, 更改
Linux
文件系统上的文件属性.
参数说明:
A:
表示文件或目录的
atime
将不可修改
s: 会将数据同步写入磁盘中
a:
只能追加不能删除, 非
root
用户不能设定该属性
c: 自动解压该文件, 读取时会自动解压
i: 文件不能删除, 从命名, 设定链接, 写入以及新增数据
lsattr
(
list attribute
)命令: 用于读取文件或者目录的特殊权限
a: 列出所有文件(包含隐藏文件)
R: 连同子目录一起列出
d: 只列出当前目录
-----------------------------------------------------------------------------------------
chattr -i 命令: 文件不能删除, 从命名, 设定链接, 写入以及新增数据
[root@daizhihong01 tmp]# ls -l
总用量 8
-rw-r--r-- 1 root root 0 2 月 1 22:09 123456.txt
-rw-r--r-- 1 root root 0 2 月 1 22:09 123.txt
-rw-r--r-- 1 root root 0 2 月 1 22:09 12.txt
-rw-r--r-- 1 root root 0 2 月 1 22:09 1.txt
1234567890qwweerrrii
~ ~ ~
E45: 'readonly' option is set (add ! to override) (不能编辑保存)
q!(强制退出)
[root@daizhihong01 tmp]# head -n2 /etc/passwd>1.txt
-bash: 1.txt: 权限不够(不能写入)
[root@daizhihong01 tmp]# ls -l 1.txt
-rw-r--r-- 1 root root 0 2 月 1 22:09 1.txt(从 - rw-r--r - 权限当中查看时可以编辑的, 但是不能编辑的话就要考虑是否设置了特殊的权限, 这时我们可以使用 lasttr 命令查看这个文件的特殊权限)
[root@daizhihong01 tmp]# lsattr 1.txt
----i----------- 1.txt
(加了特殊权限
-i
)
[root@daizhihong01 tmp]# lsattr 12.txt
---------------- 12.txt
(普通文件里面是没有
-i
特殊权限的)
不能覆盖
[root@daizhihong01 tmp]# mv 1.txt 12.txt
mv
: 是否覆盖
"12.txt"
?
y
mv:
无法将
"1.txt"
移动至
"12.txt":
不允许的操作
不能删除
[root@daizhihong01 tmp]# rm 1.txt
rm
: 是否删除普通空文件
"1.txt"
?
y
rm:
无法删除
"1.txt":
不允许的操作
[root@daizhihong01 tmp]# rm -f 1.txt
rm:
无法删除
"1.txt":
不允许的操作
可以更改时间
[root@daizhihong01 tmp]# touch 1.txt
touch:
无法创建
"1.txt":
权限不够
移除 "i" 权限
[root@daizhihong01 tmp]# chattr -i 1.txt
[root@daizhihong01 tmp]# lsattr 1.txt
---------------- 1.txt
减掉 "i" 参数以后就可以编辑了
[root@daizhihong01 tmp]# vi 1.txt
[root@daizhihong01 tmp]# rm 1.txt
rm
: 是否删除普通文件
"1.txt"
?
y
-------------------------------------------------------------------------------------
chattr
-
a
命令: 只能追加不能删除, 非
root
用户不能设定该属性
[root@daizhihong01 tmp]# lsattr 12.txt
-----a---------- 12.txt
[root@daizhihong01 tmp]# chattr -a 12.txt
[root@daizhihong01 tmp]# lsattr 12.txt
---------------- 12.txt
---------------------------------------------------------------------------------------
不能删除
[root@daizhihong01 tmp]# rm 12.txt
rm
: 是否删除普通空文件
"12.txt"
?
y
rm:
无法删除
"12.txt":
不允许的操作
[root@daizhihong01 tmp]# rm -f 12.txt
rm:
无法删除
"12.txt":
不允许的操作
不能写入
[root@daizhihong01 tmp]# vi 12.txt
qwjxjx
nxnxxxkx,
~
~
~
~
~
"12.txt"
"12.txt" E212: Can't open file for writing
Press ENTER or type command to continue 不能覆盖:
[root@daizhihong01 tmp]# mv 12.txt 123.txt
mv
: 是否覆盖
"123.txt"
?
y
mv:
无法将
"12.txt"
移动至
"123.txt":
不允许的操作
可以更改时间信息:
[root@daizhihong01 tmp]# touch 12.txt
[root@daizhihong01 tmp]# ls -l
总用量 8
-rw-r--r-- 1 root root 0 2 月 1 22:09 123456.txt
-rw-r--r-- 1 root root 0 2 月 1 22:09 123.txt
-rw-r--r-- 1 root root 65 2
月
1
23:03
12.txt
追加内容也不行:
[root@daizhihong01 tmp]# head -n2 /etc/passwd > 12.txt
-bash: 12.txt: 不允许的操作
从后面追加是可以的:
[root@daizhihong01 tmp]# head -n2 /etc/passwd >> 12.txt
[root@daizhihong01 tmp]# cat 12.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
从后面追加的内容
"a" 权限可以追加内容, 可以更改时间信息
-------------------------------------------------------------------------------------
[root@daizhihong01 tmp]# tree 001
001
└── 002
└── 003
[root@daizhihong01 tmp]# lsattr 001
---------------- 001/002
[root@daizhihong01 tmp]# lsattr -d 001(查看本目录)
---------------- 001
目录加上 "i" 权限:
[root@daizhihong01 tmp]# lsattr -d 001
----i----------- 001
不能删除目录:
[root@daizhihong01 tmp]# rm -r 001
rm: 是否进入目录 "001"? y
rm: 是否进入目录 "001/002"? y
rm
: 是否删除目录
"001/002/003"
?
y
rm
: 是否删除目录
"001/002"
?
y
rm:
无法删除
"001/002":
权限不够
不能覆盖:
[root@daizhihong01 tmp]# mv 001 123456
mv:
无法将
"001"
移动至
"123456":
不允许的操作
不能在目录下创建文件:
[root@daizhihong01 tmp]# touch 001/123456.txt
touch:
无法创建
"001/123456.txt":
权限不够
以上可以看出给目录加上
"i"
权限以后和文件加
"i"
权限以后是一样的
去掉 "i 权限":
[root@daizhihong01 tmp]# chattr -i 001
[root@daizhihong01 tmp]# lsattr 001
---------------- 001/002
目录加上 "a" 权限:
[root@daizhihong01 tmp]# chattr +a 001
[root@daizhihong01 tmp]# touch 001/123456.txt
[root@daizhihong01 tmp]# tree 001
001
├── 002
└── 123456.txt
1 directory, 1 file
是可在目录下追加文件的
编辑目录下文件的内容:
[root@daizhihong01 tmp]# vi 123456.txt
123456wenjian
~
~
~
~
~
~
~
~
:wq
[root@daizhihong01 tmp]# cat 123456.txt
123456wenjian
目录加了 "a" 以后能更改目录下文件的内容
目录加 "i" 以后编辑目录下的文件:
[root@daizhihong01 tmp]# chattr -a 001
[root@daizhihong01 tmp]# chattr +i 001
[root@daizhihong01 tmp]# head -n2 /etc/passwd > 001/123456.txt
[root@daizhihong01 tmp]# cat 001/123456.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
只要是在目录下存在的文件加 "i" 权限以后也是可以编辑文件的
---------------------------------------------------------------------------------
lsattr -R 命令: 可以查看主目录下的子目录及文件隐藏权限
[root@daizhihong01 tmp]# lsattr -R 001
---------------- 001/002
001/002:
---------------- 001/123456.txt
不加 "R" 的话仅仅只是查看一层的目录
[root@daizhihong01 tmp]# lsattr 001
---------------- 001/002
---------------- 001/123456.txt
lsattr
-
a
命令: 可以查看主目录下的子目录及文件 (包含隐藏文件) 隐藏权限
[root@daizhihong01 tmp]# lsattr -a
---------------- ./.
---------------- ./..
---------------- ./yum.log
---------------- ./.font-unix
---------------- ./.ICE-unix
---------------- ./.Test-unix
---------------- ./.X11-unix
---------------- ./.XIM-unix
来源: http://www.bubuko.com/infodetail-2484006.html