Linux中的特殊權限
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中的特殊權限