一、隱藏權限功能:
bash
防止root和其餘管理用戶誤刪除和修改重要文件及目錄。此權限用ls -l是查看不出來的。
ide
二、常見的隱藏權限:測試
1)i權限:只能查看目錄或文件內容,不能夠刪除和修改目錄及文件內容,包括root用戶也不能夠。
spa
2)a權限:能夠查看目錄和文件內容,也能夠追加文件內容,也能夠在目錄中建立新子目錄和文件,但不能夠刪除目錄和文件的內容,固然也不能夠修改只能追加。
orm
三、查看隱藏權限server
命令語法:lsattr 文件或目錄ip
範例:it
[root@server data]# ls data01 script server01 wahaha.txt [root@server data]# lsattr wahaha.txt ----i----------- wahaha.txt [root@server data]# lsattr server01/ ---------------- server01/accp01 [root@server data]# lsattr -d server01 -----a---------- server01
注意:查看目錄自己的隱藏權限的時候須要加「-d」選項,若是不加,則默認查看目錄裏面的文件的隱藏權限。class
四、添加隱藏權限權限
命令語法:chattr +選項 目錄或文件名
1)添加隱藏權限:i 權限
chattr +i 目錄或文件名
目錄上加 i 隱藏權限
[root@server data]# ls data01 script server01 wahaha.txt #查看script目錄是否有隱藏權限 [root@server data]# lsattr -d script/ ---------------- script/ #向script目錄添加 i 權限 [root@server data]# chattr +i script #查看script目錄是否有了 i 隱藏權限 [root@server data]# lsattr -d script/ ----i----------- script/ #測試script目錄的 i 隱藏權限是否能夠建立子目錄及文件 [root@server data]# touch script/tom.txt touch: 沒法建立"script/tom.txt": 權限不夠 [root@server data]# mkdir script/tom mkdir: 沒法建立目錄"script/tom": 權限不夠 [root@server data]# ls script/ 1.txt oldboy01 #script目錄裏面的文件是能夠添加及修改內容,子目錄裏也能夠建立新文件及目錄,父目錄裏面是不能夠修改文件名的。 [root@server script]# ls 1.txt oldboy01 [root@server script]# echo oldboy > 1.txt [root@server script]# cat 1.txt oldboy [root@server script]# mv 1.txt oldboy.txt mv: 沒法將"1.txt" 移動至"oldboy.txt": 權限不夠 [root@server script]# touch ./oldboy01/tom.txt [root@server script]# ls oldboy01/ tom.txt wahaha
注意:當目錄上有 i 權限,子目錄和文件沒有隱藏權限時,父目錄裏面不能夠建立新目錄和新文件,也不能夠刪除和修改文件名。但子目錄裏能夠建立新文件和新子目錄,文件也能夠添加及修改文件裏面的內容。
文件上加 i 權限
[root@server data]# ls data01 script server01 wahaha.txt [root@server data]# lsattr wahaha.txt ---------------- wahaha.txt [root@server data]# chattr +i wahaha.txt [root@server data]# lsattr wahaha.txt ----i----------- wahaha.txt [root@server data]# echo www > wahaha.txt -bash: wahaha.txt: 權限不夠 [root@server data]# echo oldboy >> wahaha.txt -bash: wahaha.txt: 權限不夠 [root@server data]# rm -f wahaha.txt rm: 沒法刪除"wahaha.txt": 不容許的操做
2)添加隱藏權限:a 權限
chattr +a 目錄或文件名
目錄加 a 權限:
[root@server data]# ls data01 script server01 wahaha.txt [root@server data]# lsattr -d server01/ ---------------- server01/ [root@server data]# chattr +a server01/ [root@server data]# lsattr -d server01/ -----a---------- server01/ [root@server data]# ls ./server01/ 1.txt accp01 [root@server data]# touch ./server01/tom.txt [root@server data]# mkdir ./server01/wahaha [root@server data]# ls ./server01/ 1.txt accp01 tom.txt wahaha [root@server data]# rm -f ./server01/1.txt rm: 沒法刪除"./server01/1.txt": 不容許的操做 [root@server data]# rm -rf ./server01/wahaha/ rm: 沒法刪除"./server01/wahaha/": 不容許的操做
文件加a權限:
[root@server data]# ls data01 script server01 wahaha.txt [root@server data]# lsattr wahaha.txt ---------------- wahaha.txt [root@server data]# chattr +a wahaha.txt [root@server data]# lsattr wahaha.txt -----a---------- wahaha.txt [root@server data]# cat wahaha.txt aaa [root@server data]# echo www > wahaha.txt -bash: wahaha.txt: 不容許的操做 [root@server data]# echo www >> wahaha.txt [root@server data]# echo zzz >> wahaha.txt [root@server data]# cat wahaha.txt aaa www zzz [root@server data]# rm -f wahaha.txt rm: 沒法刪除"wahaha.txt": 不容許的操做
五、刪除隱藏權限
語法: chattr -選項 目錄或文件名
[root@server data]# ls data01 script server01 wahaha.txt [root@server data]# lsattr -d data01/ -----a---------- data01/ [root@server data]# lsattr -d script/ ----i----------- script/ [root@server data]# chattr -i script/ [root@server data]# chattr -a data01/ [root@server data]# lsattr -d data01/ ---------------- data01/ [root@server data]# lsattr -d script/ ---------------- script/
6、總結
1)查看隱藏權限:lsattr 文件名;lsattr -d 目錄名。
2)添加隱藏權限:chattr +i 目錄或文件名;chattr +a 目錄或文件名。
3)刪除隱藏權限:chattr -i 目錄或文件名;chattr -a 目錄或文件名。
4)當目錄有 i 隱藏權限,子目錄和文件沒有隱藏權限時,父目錄不能夠建立新子目錄和文件,不能夠刪除目錄及文件,也不能夠修改目錄名和文件名。但子目錄是沒有影響的,能夠建立新子目錄和文件。父目錄裏的文件也能夠添加及修改內容。
5)當目錄有 a 隱藏權限,子目錄和文件沒有隱藏權限時,父目錄能夠建立新子目錄和文件,不能夠刪除目錄及文件,也不能夠修改目錄名和文件名。但子目錄是沒有影響的,能夠建立新子目錄和文件及能夠刪除子目錄裏面的文件。父目錄裏的文件也能夠添加及修改內容。
6)當文件有 i 隱藏權限時,只能查看內容,不能夠修改和刪除文件。
7)當文件有 a 隱藏權限時,能夠查看和追加內容,但不能夠修改和刪除文件。