1. 程式人生 > >2017.12.21 2周4次課

2017.12.21 2周4次課

linux 學習

二周第四次課(12月21日)

2.18 特殊權限set_uid 2.19 特殊權限set_gid 2.20 特殊權限stick_bit 2.21 軟鏈接文件 2.22 硬連接文件

2.18 特殊權限set_uid

set uid:該權限針對二進制可執行文件,使文件在執行階段具有文件所有者的權限,即可以讓普通用戶執行時,臨時擁有該命令所有者的身份。而對目錄是沒有任何意義的

比如, passwd這個命令就具有該權限。當普通用戶執行passwd命令時,可以臨時獲得root權限,從而可以更改密碼。

技術分享圖片

上圖可以看到user用戶多了【s】的權限,對應的【/usr/bin/passwd】是紅色的

【s】就是【set uid】的權限

密碼文件:【/etc/shadow】權限全為0

技術分享圖片

root用戶是超級管理員,即使全0權限也能更改權限。

用戶目錄aming,無法執行【/root/ls】命令,普通用戶是沒有權限的。

技術分享圖片

給【ls】命令設置【set uid】,使其臨時擁有root身份,這樣可以在用戶目錄下執行。但root權限還是沒有變。

技術分享圖片

技術分享圖片

如果去掉【s】的權限,【-s】就可以了

技術分享圖片

另一種寫法。變成大寫S,因為是沒有“x“的權限。但不受影響。也能執行。

技術分享圖片

從大寫S,變成小寫的s,只要加上“x”的權限就可以了

技術分享圖片

你可能會發現set uid上的權限為大寫的s,而不是小寫的s,比如rws,這是因為該文件沒有×權限所致,不管是大寫的s還是小寫的s,都表示它存在set uid或者set_gid權限,同理sticky bit 也一樣。

2.19 特殊權限set_gid

set gid:該權限可以作用在文件上(二進制可執行文件),也可以作用在目錄上。

1.當作用在文件上時,其功能和set uid—樣,它會使文件在執行階段具有文件所屬組的權限。即普通用戶臨時擁有所屬組的身份。

技術分享圖片

上圖可以看到group組多了【s】的權限,對應的【/usr/bin/ls】是×××的

用戶目錄aming,無法執行【/root/ls】命令,普通用戶是沒有權限的

技術分享圖片

給【ls】命令設置【set gid】,使其臨時擁有root組身份,這樣可以在root組身份下執行

技術分享圖片

技術分享圖片

root目錄對於root組來講,是有讀和打開的權限

技術分享圖片

2.目錄被設置這個權限後,任何用戶在此目錄下創建的文件和目錄都具有和該目錄所屬的組相同的組。

技術分享圖片

技術分享圖片

技術分享圖片

2.20 特殊權限stick_bit

sticky bit:可以理解為防刪除位。文件是否可以被某用戶刪除,主要取決於該文件所在的目錄是否對該用戶具有寫權限。如果沒有寫權限,則這個目錄下的所有文件都不能刪除,

同時也不能添加新的文件。 如果希望用戶能夠添加文件但不能刪除該目錄下其他用戶的文件則可以對父目錄增加該權限。 設置該權限後 , 就算用戶對目錄具有寫權限, 也不能刪除其他用戶的文件。

系統tmp目錄有這個權限

技術分享圖片

上圖的【t】,就是【sticky bit】

任何用戶都可以在目錄tmp裏寫文件,創建目錄

技術分享圖片

使用實例:

技術分享圖片

所有者和所屬組都是aming

技術分享圖片

更改aming用戶下創建的aming目錄權限更改為777

技術分享圖片

在user1用戶下能更改aming,但不能刪除(root用戶能刪除)

技術分享圖片

把用戶user1創建的user1目錄更改為777,目錄下也能創建文件和目錄

技術分享圖片

技術分享圖片

技術分享圖片

也可以刪除文件和目錄,即使文件和目錄沒有寫的權限

技術分享圖片

要看刪除的文件和目錄所在父目錄有沒有【w】的權限,而不是文件和目錄本身的權限

技術分享圖片

一旦加上了“stick_bit“,你就不能刪除了,但能修改。

2.21 軟鏈接文件

軟鏈接:是建立一個獨立的文件,當讀取這個鏈接文件時,它會把讀取的行為轉發到該文件所鏈接的文件上。不僅能軟鏈接文件和目錄還能跨分區。類似windows的快捷方式。

技術分享圖片

“/bin/ls --> /user/bin/ls“

在文件本身裏存了另外一個的路徑或目錄的路徑,鏈接文件的大小跟你的路徑有關。路徑越長文件越大

In命令的格式為:In [-s] [來源文件] [目的文件],該命令常用的選項是-s。如果不加-s選項就是建立硬鏈接,加上- s選項就建立軟鏈接。做軟鏈接盡量使用絕對路徑

1.鏈接文件

技術分享圖片

2.鏈接目錄

技術分享圖片

3.鏈接文件在當前目錄,顯示的是絕對路徑會有問題,盡量不要使用

技術分享圖片

技術分享圖片

不能移動或刪除源文件,否則會出錯時(會紅色顯示,並閃爍)

技術分享圖片

4.工作中會遇到磁盤或分區快寫滿了,可以把日誌文件放到其他空的分區下,但不能改路徑。

方法:

把日誌文件拷貝到空分區下,刪除原來的日誌文件,做個軟鏈接

技術分享圖片

2.22 硬連接文件

硬鏈接:當系統要讀取一個文件時,會先讀inode信息,然後再根據inode中的信息到塊區域將數據取出來。而硬鏈接是直接再建立一個inode鏈接到文件放置的塊區域 ,即進行硬鏈接時該文件內容沒有任何變化,只是增加了一個指向這個文件的inode,並不會額外占用磁盤空間。

真正存文件的信息數據的在inode上,inode號代表的它是一個inode,inode是存在於文件系統裏的一種特殊的東西,會記錄文件的屬性如時間,權限等,還有比如在磁盤上某分區某塊記錄著這個文件的數據;

技術分享圖片

技術分享圖片

硬鏈接的特性:

創建了1個文件,和另1個文件inode號一樣。這2個文件相互為硬鏈接文件

刪除源文件後,硬鏈接文件沒有問題(紅框),inode數量-1;而軟鏈接出錯了(黃框)

技術分享圖片

硬鏈接有兩個限制:

(1)不能跨文件系統,因為不同的文件系統有不同的inode table;

技術分享圖片

(2)不能鏈接目錄。

技術分享圖片


2017.12.21 2周4次課