今天是學習linux作業系統的第七天,在此做乙個簡短的小結:
1、檔案許可權與歸屬
儘管在linux系統中一切都是檔案,但是每個檔案的型別不盡相同,因此linux系統使用了不同的字元來加以區分,常見的字元如下所示:
在linux系統中,每個檔案都有所屬的所有者和所有組,並且規定了檔案的所有者、所有組以及其他人對檔案所擁有的可讀(r)、可寫(w)、可執行(x)等許可權。對於一般檔案來說,許可權比較容易理解:「可讀」表示能夠讀取檔案的實際內容;「可寫」表示能夠編輯、新增、修改、刪除檔案的實際內容;「可執行」則表示能夠執行乙個指令碼程式
對目錄檔案來說,「可讀」表示能夠讀取目錄內的檔案列表;「可寫」表示能夠在目錄內新增、刪除、重新命名檔案;而「可執行」則表示能夠進入該目錄。
檔案的讀、寫、執行許可權可以簡寫為rwx,亦可分別用數字4、2、1來表示,檔案所有者,所屬組及其他使用者許可權之間無關聯
2、檔案的特殊許可權
在複雜多變的生產環境中,單純設定檔案的rwx許可權無法滿足我們對安全和靈活性的需求,因此便有了suid、sgid與sbit的特殊許可權位。這是一種對檔案許可權進行設定的特殊功能,可以與一般許可權同時使用,以彌補一般許可權不能實現的功能
下面具體解釋這3個特殊許可權位的功能以及用法:
① suid
suid是一種對二進位制程式進行設定的特殊許可權,可以讓二進位制程式的執行者臨時擁有屬主的許可權(僅對擁有執行許可權的二進位制程式有效)。例如,所有使用者都可以執行passwd命令來修改自己的使用者密碼,而使用者密碼儲存在/etc/shadow檔案中。仔細檢視這個檔案就會發現它的預設許可權是000,也就是說除了root管理員以外,所有使用者都沒有檢視或編輯該檔案的許可權。但是,在使用passwd命令時如果加上suid特殊許可權位,就可讓普通使用者臨時獲得程式所有者的身份,把變更的密碼資訊寫入到shadow檔案中,因此這只是一種有條件的、臨時的特殊許可權授權方法。
檢視passwd命令屬性時發現所有者的許可權由rwx變成了rws,其中x改變成s就意味著該檔案被賦予了suid許可權。如果原先許可權位上沒有x執行許可權,那麼被賦予特殊許可權後將變成大寫的s
②sgid
sgid主要實現如下兩種功能:
讓執行者臨時擁有屬組的許可權(對擁有執行許可權的二進位制程式進行設定)
在某個目錄中建立的檔案自動繼承該目錄的使用者組(只可以對目錄進行設定)
sgid的第一種功能是參考suid而設計的,不同點在於執行程式的使用者獲取的不再是檔案所有者的臨時許可權,而是獲取到檔案所屬組的許可權
rhel 7系統中的/tmp作為乙個共享檔案的目錄,預設已經設定了sbit特殊許可權位,因此除非是該目錄的所有者,否則無法刪除這裡面的檔案。
與前面所講的suid和sgid許可權顯示方法不同,當目錄被設定sbit特殊許可權位後,檔案的其他人許可權部分的x執行許可權就會被替換成t或者t,原本有x執行許可權則會寫成t,原本沒有x執行許可權則會被寫成t
3、檔案的隱藏屬性
linux系統中的檔案除了具備一般許可權和特殊許可權之外,還有一種隱藏許可權,即被隱藏起來的許可權,預設情況下不能直接被使用者發覺。有使用者曾經在生產環境和rhce考試題目中碰到過明明許可權充足但卻無法刪除某個檔案的情況,或者僅能在日誌檔案中追加內容而不能修改或刪除內容,這在一定程度上阻止了黑客篡改系統日誌的圖謀,因此這種「奇怪」的檔案也保障了linux系統的安全性
4、chattr命令
chattr命令用於設定檔案的隱藏許可權,格式為chattr [引數] 檔案
如果想要把某個隱藏功能新增到檔案上,則需要在命令後面追加「+引數」,如果想要把某個隱藏功能移出檔案,則需要追加「-引數」。chattr命令中可供選擇的隱藏許可權引數非常豐富
5、lsattr命令
lsattr命令用於顯示檔案的隱藏許可權,格式為lsattr [引數] 檔案
在linux系統中,檔案的隱藏許可權必須使用lsattr命令來檢視,平時使用的ls之類的命令則看不出端倪
6、檔案訪問控制列表
不知道大家是否發現,前面講解的一般許可權、特殊許可權、隱藏許可權其實有乙個共性—許可權是針對某一類使用者設定的。如果希望對某個指定的使用者進行單獨的許可權控制,就需要用到檔案的訪問控制列表(acl)了。通俗來講,基於普通檔案或目錄設定acl其實就是針對指定的使用者或使用者組設定檔案或目錄的操作許可權。另外,如果針對某個目錄設定了acl,則目錄中的檔案會繼承其acl;若針對檔案設定了acl,則檔案不再繼承其所在目錄的acl
7、su命令與sudo服務
su命令可以解決切換使用者身份的需求,使得當前使用者在不退出登入的情況下,順暢地切換到其他使用者,比如從root管理員切換至普通使用者
最後附上幾張吧!
php學習之旅第七天
概念 使用static關鍵字修飾的類成員,表示該成員屬於類訪問 靜態成員 靜態屬性 靜態方法 靜態成員是明確用來給類訪問的,而不是物件 靜態成員只是多了static關鍵字修飾,本身也可以被物件訪問 靜態成員同樣使用訪問修飾限定符限定,效果一致 class saler echo saler pi 靜態...
Linux學習第七天
一 程序控制 1 開機後bootloader將系統的第乙個程序啟動了起來,bootloader是燒製在bios上的 2 第乙個例子 getpid include func.h int main int argc,char ar 3 乙個程序有4個身份 真實使用者id 真實組id 有效使用者id 有效...
linux 學習第七天
一 bash 使用 for迴圈 while迴圈 1.1 批量新增使用者 1.2 檢視使用者是否存在 a cut d f 1 etc passwd b id dream id 使用者名稱 c ll home 檢視使用者目錄 1.3 批量刪除使用者 請謹慎操作 1.5 猜數字 1.6 判斷使用者輸入 1...