首頁 > 軟體

對Linux的許可權管理的認識

2020-06-16 16:49:33

Linux/GNU有一句廣為流傳的話就是“Linux的一切都是檔案”,系統的執行就是核心建立一系列進程來呼叫檔案完成使用者下達的任務。且Linux/GNU系統作為一個多使用者多工的作業系統,如何來管理各個使用者及他們所建立的任務,就是一個軟體工程,他的架構設計可以參考我們的社會結構,畢竟我們的社會先於軟體工程發展了幾千年,直到上世紀50年代後軟體工程的硬體基礎發展起來,它的依賴關係滿足後自然就發展出來了(當然在軟體系統中我們可以更少受一些不必要的社會規則的掣肘,更理想化)。軟體工程以所有使用者的長遠利益著想,最高目標是穩定高效不宕機崩潰,杜絕以不可控的崩潰來實現重新啟動,出現這種情況,最受傷的是普羅大眾。

在社會中,我們每個自然人都是一個公民,有自己的家庭,家庭成員就構成了一個基本的使用者組,每戶家庭又組成更大一級的國家,每個國家又組成一個地球村(這是單從家庭的的維度解釋的使用者與使用者組的概念)。當然我們還有自己的職業,工作在不同的崗位,為系統的可持續執行發展貢獻自己的力量,我們就又分屬於公司的這個使用者組,所以單個使用者可以屬於多個使用者組。.在單個使用者組中,使用者對系統管理員或者上級組管理員分配給自己的資源而創造的檔案擁有可支配的一切許可權(r,w,x),他可以對除自身意外的其他使用者及組成員設定相關許可權。現主要講以下幾點:

1.Linux檔案許可權的概念

在各個Linux/GNU發行版中,登入系統,執行“ls -al”命令!,會看到如下內容:

主要講圖中第一列,第一列有10個字元,可分為4組。第一組為第一個字元,接下來每三個字元為一組。

1).第一個字元代表這個檔案的型別

若是【d】,則是目錄(directory),例如上圖中的後兩行;

若是【- 】,則是檔案,例如上圖中中間的4行;

若是【l】,則表示為連結檔案;

若是【b】,則表示裝置檔案裡面的可供儲存的介面裝置;

若是【c】,則表示為裝置檔案裡的串列埠裝置,例如鍵盤,滑鼠。

2).後三組都是“r,w,x”3個引數的組合,【r】代表可讀(read),【w】代表可寫或修改(write),【x】代表可執行(excute)。這三個許可權的位置不會改變,如果沒有許可權,就會出現減號【-】。

第一組為“檔案所有者的許可權”,以“.cshrc”那個檔案為例,該目錄的所有者可讀寫但不可執行;

第二組為“同使用者組的許可權”,以同一個檔案為例,該檔案對同組的其他使用者可讀不可寫(修改)且不可執行;

第三組為“其他非本組使用者的許可權”,以同一個檔案為例,該目錄對非本組使用者也是可讀不可寫(修改)且不可執行;

*Linux檔案許可權的設定對系統的資料安全有很大的作用,比如說自己家裡你不希望小偷隨意出入帶走你的財產,就算是熟人來家裡做客,你也不會讓他隨意改動家具擺放吧。還有關於系統服務的檔案通常只有root使用者才能讀寫或執行,例如/etc/shadow這個存放賬號管理資訊的檔案,由於該檔案記錄了你 系統中所有使用者賬號的資料,當然不能讓任何人讀取(否則密碼會被竊取埋下安全隱患),所以該檔案的許可權就會是【-rw-------】,只有root才能夠來讀取。

2.檔案預設許可權與改變檔案的屬性與許可權

同樣的,公民或使用者可以按照需要,靈活改變自身屬下的檔案屬性或建立新的檔案,比如加入(建立)了另一個組 ,就像換工作了或者結婚組建新的家庭。Liunx系統下為了方便使用者的建立操作,會對新檔案設定一個預設的許可權。比如,普通檔案不會給執行許可權(x),出於安全考慮,防止下載的不明檔案(計算機病毒)自動執行;目錄檔案會給執行許可權,方便使用者進入檢視,但不給寫(w)許可權,以免目錄被亂改。    一個檔案的屬性與許可權有很多,先介紹幾個常用與使用者組、所有者、各種身份的許可權的修改的命令:

1).chgrp:change group,改變使用者所屬使用者組;

2).chown:change owner,改變檔案所有者;

3).chmod:change mode,改變許可權;

1)).數位型別改變;

Linux檔案的基本許可權有9個,分別是owner,group,others三種身份各自的r、w、x許可權。我們用數位來代表各個許可權:r=4,w=2,x=1,各種身份各自的三個許可權的分數累加,就可以得到一個代表檔案許可權的三位數,比如777,即該檔案對屬主、屬組、其他使用者都是開放r,w,x許可權的。

2)).符號型別改變;

我們可以用u,g,o來分別代表三種身份許可權,此外用a(all)代表全部的身份,讀寫執行的許可權可以寫成r、w、x,那麼可以用以下例子表示:u=rwx,g=rx,ug=rx,a=rx等。

3.特殊許可權

系統中總會有一些事物無法用基本許可權限定,有的是出於安全考慮做必要的隔離,比如其他使用者對/user/bin/passwd的存取許可權設定;或者是公共空間的自律要求,比如在/tmp這個系統存放臨時檔案的目錄,某使用者對其他使用者建立的檔案有何存取許可權呢?特殊許可權有SUID,SGID,SBIT:

1).SUID

2).SGID

3).SBIT:Sticky Bit

SBIT只針對目錄有效,主要在/tmp目錄應用,或者其他工作組的共用檔案目錄。SBIT的主要作用是:

1)).當前使用者對此目錄具有w,x許可權,即具有寫入(修改)的許可權時;

2)).當前使用者在該目錄下建立檔案或目錄後,只有自己和root才有權利刪改該檔案。

這就和社會的公共空間一樣,本來各個使用者都有許可權對其他使用者的檔案進行刪改,但是要避免某些使用者對其他使用者的惡意操作,維護全體使用者的最大化利益,我們需要對公共空間內的使用者建立的檔案加以保護,另設SBIT許可權。

SUID/SGID/SBIT許可權設定

參考之前許可權修改的方式,也分為數位式和字元式:

1).數位式

數位式更改許可權的方式為“三個數位”的組合,如果在三個數位的前面再加上一個數位的話,最前面的那個數位就可以表示這幾個許可權了;

4為SUID,2為SGID,1為SBIT

2).字元式

SUID為u+s,SGID為g+s,SBIT為o+t

以上就是我對Linux檔案許可權管理的一定簡單認識,希望對大家有所幫助。

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

本文永久更新連結地址https://www.linuxidc.com/Linux/2018-08/153393.htm


IT145.com E-mail:sddin#qq.com