檔案許可權的機制是linux系統中的一大特色,除了我們現在所熟知的du(r)、寫(w)、執行(x)許可權外,還有三個比較特殊的許可權,分別為setuid、setgid和stick bit(粘滯位)。
看一下系統中用到它的地方,以/etc/passwd和/usr/bin/passwd為例:
分析一下,/etc/passwd的許可權為-rw-r--r--也就是說:該檔案的所有者擁有讀寫的許可權,而使用者組成員和其它成員只有檢視的許可權。我們知道,在系統中我們要修改乙個使用者的密碼,root使用者和普通使用者均可以用/usr/bin/passwd someuser這個命令來修改這個/etc/passwd這個檔案,root使用者本身擁有對/etc/passwd的寫許可權,無可厚非;那普通使用者呢,這裡就用到了setuid,setuid的作用是「讓執行該命令的使用者以該命令擁有者的許可權去執行」,就是普通使用者執行passwd時會擁有root許可權,這樣就可以修改/etc/passwd這個檔案了。它的標誌為:s,會出現在x的地方,例:-rwsr-xr-x。而setgid的意思和它是一樣的,即讓執行檔案的使用者以該檔案所屬組的許可權去執行。
看一下系統中用到它的地方,以/tmp為例:
我們知道/tmp是系統的臨時檔案目錄,所有的使用者在該目錄下擁有所有的許可權,也就是說在該目錄下可以任意建立、修改、刪除檔案,那如果使用者a在該目錄下建立了乙個檔案,使用者b將該檔案刪除了,這種情況我們是不允許的。為了達到該目的,就出現了stick bit(粘滯位)的概念。它是針對目錄來說的,如果該目錄設定了stick bit(粘滯位),則該目錄下的檔案除了該檔案的建立者和root使用者可以刪除和修改/tmp目錄下的stuff,別的使用者均不能動別人的,這就是粘滯位的作用。
chmod u+s *** #設定setuid許可權
chmod g+s *** #設定setgid許可權
chmod o+t *** #設定stick bit許可權,針對目錄
chmod 4775 *** #設定setuid許可權
chmod 2775 *** #設定setgid許可權
chmod 1775 *** # 設定stick bit許可權,針對目錄
注意:有時你設定了s或t許可權,你會發現它變成了s或t,這是因為在那個位置上你沒有給它x(可執行)的許可權,這樣的話這樣的設定是不會有效的,你可以先給它設定上x許可權,然後再給s或t許可權。
Linux中特殊檔案許可權
linux中除了常見的讀 r 寫 w 執行 x 許可權以外,還有3個特殊的許可權,分別是setuid setgid和stick bit 1 setuid setgid 先看個例項,檢視你的 usr bin passwd 與 etc passwd檔案的許可權 root mylinux ls l usr...
Linux的特殊檔案許可權
一般檔案許可權讀 r 寫 w 執行 x 許可權比較簡單。一般材料上面都有介紹。這裡介紹一下一些特殊的檔案許可權 suid,sgid,stick bit。如果你檢查一下 usr bin passwd和 tmp 的檔案許可權你就會發現和普通的檔案許可權有少許不同,如下圖所示 這裡就涉及到suid和sti...
Linux的特殊檔案許可權
一般檔案許可權讀 r 寫 w 執行 x 許可權比較簡單。一般材料上面都有介紹。這裡介紹一下一些特殊的檔案許可權 suid,sgid,stick bit。如果你檢查一下 usr bin passwd和 tmp 的檔案許可權你就會發現和普通的檔案許可權有少許不同,如下圖所示 這裡就涉及到suid和sti...