Linux許可權管理總結(2) 特殊許可權

2021-09-21 10:38:33 字數 2917 閱讀 2479

1.特殊許可權facl(訪問控制列表支援)

標準linux檔案系統(ext2/3/4)支援使用posix acl設定多個複雜檔案許可權,   前提是檔案系統是使用acl選項掛載的。

在red hat enterprise linux中,如果通過ls -l顯示的許可權字串的最後乙個字元是+,則檔案或目錄設定了acl。

getfacl file用於顯示檔案的acl

setfacl用於設定或修改檔案的acl

許可權優先順序

在確定某個程序(亦即某個執行程式)是否能夠訪問某一檔案時,可按照以下方式應用檔案許可權和acl:

1. 如果是以擁有該檔案的使用者身份執行該程序,那麼可應用該檔案的使用者許可權

2. 另外,如果是作為列於使用者acl條目中的使用者執行程序,那麼應用使用者acl(只要受mask允許)

3. 另外,如果是以與擁有該檔案的組相匹配的組身份或以具有明確組acl條目的組身份執行該程序,如果許可權是由任意匹配組授予的,則應用該許可權(只要mask許可)

4. 否則,應用檔案的其他許可權

acl掩碼

具有acl的檔案擁有乙個「mask」(掩碼),這個掩碼既能夠限制擁有該檔案的組的最大許可權,有能夠限制acl中的補充使用者和組所擁有的最大許可權。

getfacl file將當前掩碼顯示為mask::permissions。

由ls -ld file顯示的組許可權也反映了當前掩碼(並非所擁有組的許可權!)

預設acl(繼承

目錄可以有「預設acl」條目,系統自動針對在該目錄中建立的新檔案設定這些條目setfacl -m d:u:bob:rw directory 將設定預設acl條目,授予使用者bob對在directory中建立的所有新檔案的讀寫訪問許可權。

這類似setgid許可權的方法(針對目錄時),使得在該目錄中建立的新檔案歸擁有該目錄的組所有。

acl掛載選項

掛載檔案系統之後,必須啟用對posix acl條目的支援。

安裝程式會配置它建立的所有ext4檔案系統,以自動啟用acl支援。

# tune2fs -l /dev/sda1 |grep "default mount"

default mount options:    user_xattr acl

如果手動格式化檔案系統,則需要使用acl掛載選項掛載該系統。

您可以將手動格式化的ext4檔案系統設定為在掛載時自動啟用支援,方法是使用tune2fs設定預設

2.其他特殊許可權

安全上下文:

程序執行時能夠訪問哪些資源或檔案,不取決於程序檔案的屬主屬組,而是取決於執行該命令的使用者身份的uid/gid,以該身份獲取各種系統資源。 

suid        ###冒險位

u+s        ###針對檔案,檔案記錄動作在執行時是檔案所有人身份執行的,與是誰發起的無關     

chmod u+s file chmod 4777 file 

sgid        ###粘製位

g+s        ##針對目錄,在目錄中建立的檔案都自動歸屬到目錄所在組。針對二進位制檔案,檔案內記錄的程式在執行時和執行者的組身份沒有關係,而是以二進位制檔案的所有組的身份執行的 

chmod g+s file|directory 

chmod 2777 file|directory    

1.touch命令使用者組為root    

2.新建目錄改使用者組為student    

3.給目錄g+s許可權    

4.在目錄中新建檔案。檔案的組與touch命令組無關,與目錄的組相同           

stickyid    ###強制位

o+t    ###一般只用在目錄上,可以理解為防刪除位,當乙個目錄被設定了sticky位,則該目錄下的檔案只能由:

一、超級管理員刪除;

二、該目錄的所有者刪 除;

三、該檔案的所有者刪除。

也就是說,即便該目錄是任何人都可以寫,但也只有檔案的屬主才可以刪除檔案。要 刪除乙個檔案,你不一定要有這個檔案的寫許可權,但你一定要有這個檔案的上級目錄的寫許可權。也就是說,你即使沒有乙個檔案的寫許可權,但你有這個檔案的上級目 錄的寫許可權,你也可以把這個檔案給刪除,而如果沒有乙個目錄的寫許可權,也就不能在這個目錄下建立檔案。 如何才能使乙個目錄既可以讓任何使用者寫入檔案,又不讓使用者刪除這個目錄下他人的檔案,sticky就是能起到這個作用。

stciky一般只用在目錄上,用 在檔案上起不到什麼作用  

chmod o+t directroy chmod 1777 directory      

由於suid和sgid是在執行程式(程式的可執行位被設定)時起作用,而可執行位只對普通檔案和目錄檔案有意義,所以設定其他種類檔案的suid和 sgid位是沒有多大意義的。    

對乙個屬主為root的可執行檔案,如果設定了suid位,則其他所有普通使用者都將可以以root身份執行該檔案,獲取相應的系統資源。當然這在某些場合 時需要的,但是濫用會造成系統的安全隱患。   

對乙個全域性可寫目錄,若其從屬於mygrp組,乙個屬於mygrp組的使用者建立檔案後屬組為自己的私有組,但是加上給該資料夾加上sgid位後,可以讓用 戶建立的檔案從屬於該目錄所屬的組,因為是以資料夾屬組的身份來建立的。    

對於乙個全域性可寫目錄,加上sticky位以後,普通使用者將只能刪除自己的檔案,而不能刪除其他使用者的檔案。

linux特殊許可權管理

檔案與目錄許可權設定不止讀 寫 執行這些,還有所謂的特殊許可權,由於特殊許可權會擁有一些 特權 12 34本章內容 suid sgid sbit 檔案擴充套件許可權acl 作用 程式執行時運行者擁有程式屬主 owner 的許可權 限制1 suid許可權僅對二進位制程式 binary program ...

Linux 檔案許可權及特殊許可權管理

第一位指檔案型別,常見檔案型別有 普通檔案 d 目錄檔案 b 塊裝置檔案 block c 字元裝置檔案 character p 命令管道檔案 pipe s 套接字檔案 socket 後面的9位指檔案許可權 每三位一組,前三位是檔案所有者 u 中間三位指檔案所屬組 g 後三位指其他使用者 o 檔案的大...

Linux 許可權管理 檔案特殊許可權SUID

只用可執行的二進位制程式才能設定suid許可權 命令的執行者要對程式擁有x許可權 命令執行者在執行該程式的過程中,獲得程式檔案所有者的身份 suid許可權,只有在該程式執行的過程中才有效。root localhost chmod u s 檔名 root localhost chmod 4755 檔名...