1. 程式人生 > >Linux中的特殊權限

Linux中的特殊權限

顯示 chmod title pan 介紹 suid src nbsp 通用

在Linux的系統中,常見的文件或目錄的權限為r,w,x三種。三種權限的相互組合,可以給目錄或文件做出各種限制。其實除了這3中常見的權限外,還有3個特殊權限,分別為suid,guid,sticky,下面介紹一下這3中特殊權限的作用和修改。


1.suid

當對一個可執行的二進制文件作用了suid權限之後,任何人在執行該文件時臨時擁有其所屬人的權限。

用法:chmod u+/-s

如下圖舉例,在1處查看/bin下的二進制文件touch,是沒有suid權限的,當在普通用戶下用/bin/touch創建一個aa文件時,文件所屬人為當前普通用戶sunwukong;在2處,給/bin/touch加上一個suid權限,再在普通用戶下創建一個bb文件,可以查看到bb文件的所屬人為root,而不是普通用戶sunwukong。

技術分享圖片


技術分享圖片

2.sgid

(1) 當對一個可執行的二進制文件作用了sgid權限之後,任何人在執行該文件時臨時擁有其所屬組的權限。

用法:chmod g+/-s

給/bin/touch加上sgid權限後,在普通用戶下調用該文件創建一個文件cc,其所屬組為root。

技術分享圖片

技術分享圖片

(2) 當對於一個目錄作用了sgid權限之後,任何人在該目錄下創建的文件的所屬組與該目錄的所屬組相同。

先把/bin/touch加的特殊權限去掉

技術分享圖片


在1中,目錄/app沒有加sgid權限,用普通用戶在該目錄下創建了一個test1文件,所屬組為普通用戶sunwukong;在2中給/app目錄加上sgid權限,在創建/app/test2文件,其所屬組為root,和目錄/app的所屬組一樣。

技術分享圖片

3.sticky

當對於一個目錄作用了sticky權限之後,該目錄下的文件僅其文件的所屬人,或目錄的所屬人及root才能刪除。

用法:chmod o+/-t

在普通用戶sunwukong下,在/app下創建一個test目錄,該目錄的用戶和用戶組都可以對目錄下的文件刪除和創建,再創建一個/app/test/aa文件。切換到普通用戶sunxingzhe下,該用戶和sunwukong都在sunwukong這個組裏面,所以可以在該用戶下刪除aa文件。

技術分享圖片

技術分享圖片

在下圖中,給/app/test目錄加上sticky權限後,在創建一個bb文件,發現在sunxingzhe用戶下不能刪除該文件了。

技術分享圖片


註意:這三中權限也可以用數字表示,分別為4,2,1。如chmod 6***(***為對應的rwx權限) ,6代表既有suid權限,又有sgid權限。權限位原本有x的,加上特殊權限後,顯示為小寫,原本無x,顯示為大寫。

下圖1處test權限為rwxrwxr--,在2處給該目錄增加sgid和sticky權限,增加後,在3處目錄權限為rwxrwsr-T,s小寫,因為原權限位有x,而T大寫,因為原權限位沒有x。

技術分享圖片


Linux中的特殊權限