天天看點

Linux進階一----權限管理ACL權限--特殊權限ACL權限檔案特殊權限(SetUID,SetGID,Sticky BIT)

版權聲明:本文為部落客原創文章,未經部落客允許不得轉載!!

歡迎通路: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

繼續閱讀