[root@mmx Desktop]# chattr +a a.txt
參數 | 做用 |
---|---|
i | 沒法對文件進行修改;若對目錄設置了該參數,則僅能修改其中的子文件內容而不能新建或刪除文件 |
a | 僅容許補充(追加)內容,沒法覆蓋/刪除內容(Append Only) |
S | 文件內容在變動後當即同步到硬盤(sync) |
s | 完全從硬盤中刪除,不可恢復(用0填充原文件所在硬盤區域) |
A | 再也不修改這個文件或目錄的最後訪問時間(atime) |
b | 再也不修改文件或目錄的存取時間 |
D | 檢查壓縮文件中的錯誤 |
d | 使用dump命令備份時忽略本文件/目錄 |
c | 默認將文件或目錄進行壓縮 |
u | 當刪除該文件後依然保留其在硬盤中的數據,方便往後恢復 |
t | 讓文件系統支持尾部合併(tail-merging) |
x | 能夠直接訪問壓縮文件中的內容 |
[root@mmx Desktop]# lsattr a.txt -----a------------ a.txt
練習1:新增隱藏權限、對文件進行操做安全
# 新建a.txt,添加「僅容許補充(追加)內容」權限 [root@mmx Desktop]# echo nice > a.txt [root@mmx Desktop]# ls a.txt [root@mmx Desktop]# chattr +a a.txt # 修改、刪除a.txt,發現不行,只能追加 [root@mmx Desktop]# echo good > a.txt -bash: a.txt: Operation not permitted [root@mmx Desktop]# rm -rf a.txt rm: cannot remove 'a.txt': Operation not permitted # 查看a.txt的隱藏權限 [root@mmx Desktop]# lsattr a.txt -----a------------ a.txt [root@mmx Desktop]# chattr -a a.txt [root@mmx Desktop]# lsattr ------------------ ./a.txt # 成功刪除a.txt [root@mmx Desktop]# rm -rf a.txt [root@mmx Desktop]# ls
練習2:不在修改最後訪問時間atimebash
基於普通文件或目錄設置ACL訪問控制其實就是針對指定的用戶或用戶組設置文件或目錄的操做權限,更加精準的派發權限。 markdown
setfacl命令用於管理文件的ACL權限規則ide
語法格式爲:「 setfacl [參數] 文件名稱」。ui
參數 | 做用 |
---|---|
-m | 修改權限 |
-M | 從文件中讀取權限 |
-x | 刪除某個權限 |
-b | 刪除所有權限 |
-R | 遞歸子目錄 |
[root@mmx Desktop]# setfacl -Rm u:mmx:r-x Linux/ [root@mmx Desktop]# getfacl Linux/ # file: Linux/ # owner: root # group: root user::rwx user:mmx:r-x group::rwx mask::rwx other::rwx
# 清除文件中ACL [root@mmx Desktop]# setfacl -b Linux/ [root@mmx Desktop]# getfacl Linux/ # file: Linux/ # owner: root # group: root user::rwx group::rwx other::rwx
getfacl命令用於查看文件的ACL權限規則 rest
語法格式爲:「 getfacl [參數] 文件名稱」 code
# 查看設置權限目錄 [root@mmx Desktop]# getfacl Linux/ # file: Linux/ # owner: root # group: root user::rwx user:lisi:r-x group::rwx mask::rwx other::rwx [root@mmx Desktop]# getfacl /root getfacl: Removing leading '/' from absolute path names # file: root # owner: root # group: root user::r-x group::r-x other::--- # 使用ll查看文件屬性,發現點→變成+ [root@mmx Desktop]# ll total 0 drwxrwxrwx+ 3 root root 17 Jul 6 13:46 Linux
一、擁有張3、李四兩個用戶遞歸
[zhangsan@mmx Linux]$ id zhangsan uid=1001(zhangsan) gid=1001(zhangsan) groups=1001(zhangsan) [zhangsan@mmx Linux]$ id lisi uid=1002(lisi) gid=1002(lisi) groups=1002(lisi)
二、查看faclrem
[zhangsan@mmx Linux]$ getfacl . # file: . # owner: root # group: root user::rwx user:lisi:r-x group::rwx mask::rwx other::rwx
三、Desktop/Linux文件夾,設置李四r-x權限get
- echo nice > a.txt → bash: a.txt: Permission denied
- echo nice > nice.txt → ls
mmx nice.txt
[lisi@mmx Linux]$ echo nice > a.txt # lisi新建文件顯示報錯 bash: a.txt: Permission denied [lisi@mmx Linux]$ exit exit # 張三用戶使用該文件能夠寫入文件 [root@mmx Desktop]# su zhangsan [zhangsan@mmx Desktop]$ cd Linux/ [zhangsan@mmx Linux]$ echo nice > nice.txt [zhangsan@mmx Linux]$ ls mmx nice.txt
getfacl -R Linux > nice.txt
[root@mmx Desktop]# getfacl -R Linux > nice.txt [root@mmx Desktop]# cat nice.txt # file: Linux # owner: root # group: root user::rwx user:lisi:r-x group::rwx mask::rwx other::rwx # file: Linux/zhangsan # owner: zhangsan # group: zhangsan user::rwx group::r-x other::r-x [root@mmx Desktop]# getfacl Linux/ # file: Linux/ # owner: root # group: root user::rwx user:lisi:r-x group::rwx mask::rwx other::rwx
setfacl --restore nice.txt
# 使用恢復命令 [root@mmx Desktop]# setfacl --restore nice.txt [root@mmx Desktop]# getfacl Linux/ # file: Linux/ # owner: root # group: root user::rwx user:lisi:r-x group::rwx mask::rwx other::rwx
在生產環境中仍是要對安全多一份敬畏之心,不要用root管理員去作全部事情。
su命令能夠解決切換用戶身份的需求
強烈建議在切換用戶身份時添加這個減號(-)
[xiaozhi@mmx root]$ su - mmx Password: [mmx@mmx ~]$
# 使用visudo命令編輯 …… 98 ## 99 ## Allow root to run any commands anywhere 100 root ALL=(ALL) ALL 101 mmx ALL=(ALL) /usr/sbin/reboot 102 ……
參數 | 含義 |
---|---|
mmx | 用戶名稱 |
ALL=(ALL) | 用戶擁有權限 |
/usr/sbin/reboot | 用戶執行該命令須要sudo身份 |
sudo命令中的可用參數以及做用
參數 | 做用 |
---|---|
-h | 列出幫助信息 |
-l | 列出當前用戶可執行的命令 |
-u 用戶名或UID值 | 以指定的用戶身份執行命令 |
-k | 清空密碼的有效時間,下次執行sudo時須要再次進行密碼驗證 |
-b | 在後臺執行指定的命令 |
-p | 更改詢問密碼的提示語 |
使用sudo命令,輸入密碼確認
[mmx@mmx ~]$ sudo reboot [sudo] password for mmx: