Linux筆記08(權限)

(一)添加隱藏權限

一、chattr +參數 文件名

[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 能夠直接訪問壓縮文件中的內容

二、lsattr 查看添加隱藏權限文件

[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

1. setfacl命令

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

2. getfacl命令

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

練習:配置facl

一、擁有張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

  1. echo nice > a.txt → bash: a.txt: Permission denied
  2. 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

3. 備份&恢復ACL

一、備份FACL

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

二、恢復FACL

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

(3)su和sudo命令

在生產環境中仍是要對安全多一份敬畏之心,不要用root管理員去作全部事情。

su命令能夠解決切換用戶身份的需求

強烈建議在切換用戶身份時添加這個減號(-)

一、su命令

[xiaozhi@mmx root]$ su - mmx
Password: 
[mmx@mmx ~]$

二、sudo命令

# 使用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:
相關文章
相關標籤/搜索