版權聲明:本文為部落客原創文章,未經部落客允許不得轉載!!
歡迎通路:https://blog.csdn.net/qq_21439395/article/details/82120706
交流QQ: 824203453
ACL權限
1,ACL權限簡介與開啟
ACL權限是為了解決所有者,所屬組,其他人三個身份權限不足的問題。 如一個臨時使用者,試聽者。
檢視分區ACL權限是否開啟
dumpe2fs 指令是查詢指定分區詳細檔案系統資訊的指令
選項:-h 僅顯示超級塊中資訊,而不顯示磁盤塊組的詳細資訊
eg:#dumpe2fs -h /dev/sda5 檢視根分區是否支援ACL權限,使用df -h 指令檢視到 /分區(根分區)的檔案系統是/dev/sda5
Default mount options: user_xattr acl 預設支援
臨時開啟分區ACL權限
#mount -o remount,acl / 重新挂載根分區,并挂載加入acl權限
永久開啟分區ACL權限
#vi /etc/fstab
UUID=8ed6d7bf-062f-4dab-a82f-636f1edda577 / ext4 defaults,acl 1 1
# 加入acl
#mount -o remount /
重新挂載檔案系統或重新開機系統,使修改生效
2,檢視與設定ACL權限
檢視ACl指令
#getfacle 檔案名 檢視acl權限
設定acl權限的指令
#setfacl 選項 檔案名
選項:
-m 設定acl權限
-x 删除指定的acl權限
-b 删除所有的acl權限
-d 設定預設acl權限
-k 删除預設acl權限
-R 遞歸設定acl權限
給使用者設定acl權限
setfacl -m u:st:rx /project/ 給使用者st賦予r-x權限,使用“u:使用者名:權限" 格式
具體操作:
先建立兩個使用者,再建立一個使用者組,把這兩個使用者加入到使用者組中(gpasswd -a 使用者 組),修改檔案的所有者,所屬組,修改檔案權限,
給使用者組設定ACL權限
setfacl -m g:tgoup2:rwx /project/ 給使用者組tgroup配置設定acl權限,使用“g:使用者組名:權限" 格式
3,最大有效權限和删除ACR權限
mask是用來指定最大有效權限的。如果給使用者授予了ACL權限,是需要和mask的權限“相與”才能得到使用者的真正權限。
修改最大有效權限
#setfacl -m m:rx 檔案名 設定mask權限為r-x,使用“m:權限”格式
删除acl權限
#setfacl -x u:使用者名 檔案名 删除指定使用者的acl權限
#setfacl -x g:組名 檔案名 删除指定使用者組的acl權限
#setfacl -b 檔案名 删除檔案的所有的acl權限
4,預設的ACL權限和遞歸ACL權限
遞歸acl權限
遞歸是父目錄在設定acl權限時,所有的子檔案和子目錄也會擁有相同的acl權限。
#setfacl -m u:使用者名:權限 -R 檔案名(目錄)
預設ACL權限
預設acl權限的作用是如果給父目錄設定了預設acl權限,那麼父目錄中所有建立的子檔案都會繼承父目錄的acl權限。
#setfacl -m d:u:使用者名:權限 檔案名(目錄)
檔案特殊權限(SetUID,SetGID,Sticky BIT)
SetUID的功能
隻有可以執行的二進制程式才能設定SUID權限,
指令執行者要對該程式擁有x(執行)權限
指令執行者在執行該程式時獲得該程式檔案屬主的身份
setuid權限隻在該程式執行過程中有效,也就是說身份改變隻在程式執行過程中有效
SetUID:
思考:為什麼普通使用者可以更改密碼?
SetUID的定義:當一個可執行程式具有SetUID權限,使用者執行這個程式時,将以這個程式所有者的身份執行。
範例:1、将touch指令授予SetUID權限
2、當vi指令被授予SetUID權限
3、查找SetUID程式:
find / -perm -4000 -o -perm -2000
SetUID=4 所有者
設定和取消setuid權限
chmod u+s u-s
chmod 4755 755
SetGID針對檔案的作用
隻有可以執行的二進制程式才能設定SGID權限,
指令執行者要對該程式擁有x(執行)權限
指令執行者在執行該程式時,組身份更新為該程式檔案的屬組
setgid權限隻在該程式執行過程中有效,也就是說組身份改變隻在程式執行過程中有效
SetGID針對目錄的作用
普通使用者必須對此目錄擁有r和x權限,才能進入此目錄
普通使用者在此目錄中的有效組會變成此目錄的屬組
若普通使用者對此目錄擁有w權限時,建立的檔案的預設屬組是這個目錄的屬組
setgid權限隻在該程式執行過程中有效,也就是說組身份改變隻在程式執行過程中有效
locate指令設定了setGID權限
SetGID=2 所屬組
設定和取消setgid權限
chomd g+s ug+s g-s
chomd 2755 6755 755
一旦設定了suid或者guid,一個 s 将出現在 x的位置上。記住:在設定 s u i d或g u i d的同時,相應的
執行權限位必須要被設定。
eg:drwsrwsrwx 設定了suid和guid的目錄權限 權限為6777
Sticky BIT
SBIT粘着位作用
粘着位隻對目錄有效
普通使用者對該目錄擁有w和x權限,即普通使用者可以在此目錄擁有寫入權限
如果沒有粘着位,因為普通使用者擁有w權限,所有可以删除此目錄下所有檔案,包括其他使用者建立的檔案。一旦賦予了粘着位,除了root可以删除所有檔案,普通使用者就算擁有w權限,也隻能删除自己建立的檔案,但是不能删除其他使用者建立的檔案。
/tmp目錄設定了粘着位權限
粘着位=1 其他人 (針對目錄設定)
t,如果一個權限為777的目錄具有粘着位,每個使用者都可以在該目錄下建立檔案,但是隻能删除自己是所有的檔案
設定和取消粘着位
chmod o+t o-t 目錄名
chmod 1777 777 目錄名
eg:drwsrwsrwt 目錄權限為 7777
3,檔案系統屬性chattr權限
#chattr [+-=] [選項] 檔案或目錄名
+:增權重限 -:删除權限 =:等于某權限
選項:
i:如果對檔案設定i屬性,那麼不允許對檔案進行删除,改名,也不能添加和修改資料;如果對目錄設定i屬性,那麼隻能修改目錄下檔案的資料,但不允許建立和删除檔案。
a:如果對檔案設定a屬性,那麼隻能在檔案中增加資料(隻能以>>方式追加,不能使用vi編輯),但是不能删除也不能修改資料;如果對目錄設定a屬性,那麼隻允許在目錄中建立和修改檔案(隻能修改檔案内容,不能修改檔案名),但是不允許删除。
檢視檔案系統屬性
#lsattr 選項 檔案名
選項:
-a:顯示所有檔案和目錄
-d:若目标是目錄,僅列出目錄本身的屬性,而不是子檔案的
版權聲明:本文為部落客原創文章,未經部落客允許不得轉載!!
歡迎通路:https://blog.csdn.net/qq_21439395/article/details/82120706
交流QQ: 824203453