Linux檔案許可權與歸屬(詳解篇)

2021-10-06 15:42:14 字數 3270 閱讀 4991

你們的關注、點讚是我更新的動力

在linux系統中一切都是檔案,但是檔案的型別有多種,然而linux系統使用了不同的字元來加以區分

-:普通檔案

d:目錄檔案

l:鏈結檔案

b:塊裝置檔案

c:字元裝置檔案

p:管道檔案

每個檔案都有所有者和所有組,並且規定了檔案的所有者、所有組以及其他人對檔案所擁有的可讀(r)、可寫(w)、可執行(x)等許可權

對一般檔案來講:

「可讀」:表示能夠讀取檔案的實際內容

「可寫」:表示能夠編輯、新增、修改、刪除檔案的實際內容

「可執行」:表示能夠執行乙個指令碼程式

對目錄來講:

「可讀」表示能夠讀取目錄內的檔案列表

「可寫」表示能夠在目錄內新增、刪除、重新命名檔案

「可執行」:表示能夠進入該目錄

檔案的讀、寫、執行許可權可以簡寫為rwx,亦可分別用數字4、2、1來表示,檔案所有者,所屬組以及其他使用者許可權之間無關聯

這是一種對檔案許可權進行設定的特殊功能,可以與一般許可權同時使用,以彌補一般許可權不能實現的功能

1、suid

在使用者執行該程式時,使用者的許可權是該程式檔案屬主的許可權。

在屬主許可權字段,rwx變成了rws,其中x改變成s就意味著該檔案被賦予了suid許可權

例如程式檔案的屬主是root,那麼執行該程式的使用者就將暫時獲得root賬戶的許可權。

2、sgid

sgid與suid類似,只是執行程式時獲得的是檔案屬組的許可權。

在所屬組許可權字段,r變為了sr就被賦予了sgid許可權

設定方法為:

chmod u+s filename (suid)

chmod g+s filename (sgid)

chmod和chown

chmod:能夠用來設定檔案或目錄的許可權,格式為「chmod【引數】 許可權 檔案或目錄名稱」

chown:能夠用來設定所有者和所屬組,格式為「chown 【引數】 所有者:所屬組 檔案或目錄名稱」

它們還有乙個特別的共性,就是針對目錄進行操作時需要加上大寫引數-r來表示遞迴,即對目錄內所有檔案進行整體操作

sbit

sbit:特殊許可權位可確保使用者只能刪除自己的檔案,而不能刪除其他使用者的檔案。

和前面講的suid和sgid許可權顯示方法不同,當目錄被設定為sbit後,檔案的其他人許可權部分的x執行許可權就會被替換成「t」或者t

原本有x則寫出t,原本沒有x,則寫出t

除了前面講的一般許可權和特殊許可權以外,還有一種隱藏許可權,即被隱藏起來的許可權,預設情況下不能直接被使用者發覺

chattr命令

chattr命令用於設定檔案的隱藏許可權,格式為「chattr 【引數】 檔案」

把某個隱藏功能新增到檔案上,需要在命令後面追加「+引數」

把某個隱藏檔案移出檔案,需要在命令後面追加「-引數」

引數作用

i無法對檔案進行修改;若對目錄設定了該引數,則僅能修改其中的子檔案內容而不能新建或刪除檔案

a僅允許補充(追加)內容,無法覆蓋/刪除內容

s檔案內容在變更後立即同步到硬碟(sync)

s徹底從硬碟中刪除,不可恢復(用0填充原始檔所在硬碟區域)

a不再修改這個檔案或目錄的最後訪問時間

b不再修改檔案或目錄的訪問時間

d檢查壓縮檔案中的錯誤

d使用哦dump命令備份時忽略文字檔案/目錄

c預設將檔案或目錄進行壓縮

u當刪除該檔案後依然保留其在硬碟中的資料,方便日後恢復

t讓檔案系統支援尾部合併

x可以直接訪問壓縮檔案中的內容

例項

我們可以看到普通檔案,而且還無法刪除,充分表示了隱藏許可權強大功能的美妙

lsattr命令

lsattr命令用於顯示檔案的隱藏許可權,格式為「lsattr 【引數】 檔案」

檢視隱藏許可權必須使用lsattr,平時使用的ls之類的命令看不出

前面講解的一般許可權、特殊許可權、隱藏許可權其實都有乙個共性——許可權是針對某一類使用者設定的。

如果希望對某個指定的使用者進行單獨的許可權控制,就需要用到檔案的訪問控制列表了

基於普通檔案或目錄設定了acl,其實就是針對指定的使用者或使用者組設定檔案或目錄的操作許可權,如果針對某個目錄設定了acl,則目錄中的檔案會繼承其ac;

setfacl命令

setfacl命令用於管理檔案的acl規則,格式為「setfacl 【引數】 檔名稱」

檔案的acl提供的是在所有者、所屬組、其他人的讀/寫/執行許可權之外的特殊許可權控制,使用setfacl命令可以針對單一使用者或使用者組、單一檔案或目錄來進行讀/寫/執行許可權的控制。

針對目錄檔案需要使用-r遞迴引數

針對普通檔案則使用-m引數

刪除某個檔案的acl可以使用-b引數

常用的ls命令是看不到acl表資訊的,但是卻可以看到檔案的許可權最後有乙個點(.)變成了(+),這就意味著該檔案已經設定了acl了。

getfacl命令

getfacl命令用於顯示檔案上設定的acl資訊,格式為「getfacl 檔名稱」

不足之處,還望多多指點

關注我,與我同行

小白–技術大牛

檔案許可權與歸屬

儘管在linux系統中一切都是檔案,但是每個檔案的型別不盡相同,因此linux系統使用了不同的字元來加以區分,常見的字元如下所示。普通檔案。d 目錄檔案。l 鏈結檔案。b 塊裝置檔案。c 字元裝置檔案。p 管道檔案。chattr命令 chattr命令用於設定檔案的隱藏許可權,格式為 chattr 引...

檔案許可權與歸屬

在linux系統中一切都是檔案,但是每個檔案的型別不盡相同,因此linux系統使用了不同的字元來加以區分,常見的字元如下所示。1.普通檔案。2.d 目錄檔案。3.l 鏈結檔案。4.b 塊裝置檔案。鍵盤等 5.c 字元裝置檔案。6.p 管道檔案。檔案許可權 可讀 r 可寫 w 可執行 x 也可以分別用...

檔案許可權與歸屬

在linux系統中一切都是檔案,但是每個檔案的型別不盡相同,因此linux系統使用了不同的字元來加以區分,常見的字元如下所示。普通檔案。d 目錄檔案。l 鏈結檔案。b 塊裝置檔案。鍵盤等 c 字元裝置檔案。p 管道檔案。檔案許可權 可讀 r 可寫 w 可執行 x 也可以分別用數字4 2 1表示。su...