1. 程式人生 > >Linux三個比較特殊的權限

Linux三個比較特殊的權限

spa 意思 針對 特殊 root ima set 塊設備 字符設備

Linux還有三個比較特殊的權限,分別是:setuid,setgid,stick bit

-:表示一般文件

d:表示目錄文件

l:表示鏈接文件

b:表示塊設備

c:表示字符設備

p:表示管道

s:表示套接字

1.setuid,setgid:

setuid的作用是讓執行該命令的用戶以該命令擁有者的權限去執行,就是普通用戶執行passwd時會擁有root的權限,這樣就可以修改/etc/passwd這個文件了。它的標誌為:s,會出現在x的地方,例:-rwsr-xr-x。而setgid的意思和它是一樣的,即讓執行文件的用戶以該文件所屬組的權限去執行。

技術分享圖片

2.stick bit:

我們知道/tmp是系統的臨時文件目錄,所有的用戶在該目錄下擁有所有的權限,也就是說在該目錄下可以任意創建、修改、刪除文件,那如果用戶A在該目錄下創建了一個文件,用戶B將該文件刪除了,這種情況我們是不能允許的。為了達到該目的,就出現了stick bit(粘滯位)的概念。它(stick bit)是針對目錄來說的,如果該目錄設置了stick bit(粘滯位),則該目錄下的文件除了該文件的創建者和root用戶可以刪除和修改/tmp目錄下的stuff,別的用戶均不能動別人的,這就是粘滯位的作用。

技術分享圖片

3、如何給文件設置特殊權限:

chmod u+s xxx # 設置setuid權限

chmod g+s xxx # 設置setgid權限

chmod o+t xxx # 設置stick bit權限,針對目錄

chmod 4775 xxx # 設置setuid權限

chmod 2775 xxx # 設置setgid權限

chmod 1775 xxx # 設置stick bit權限,針對目錄

註意:有時你設置了s或t 權限,你會發現它變成了S或T,這是因為在那個位置上你沒有給它x(可執行)的權限,這樣的話這樣的設置是不會有效的,你可以先給它賦上x的權限,然後再給s或t 的權限。

Linux三個比較特殊的權限