標籤:style blog http color 使用 ar strong 檔案 div
linux中除了常見的讀(r)、寫(w)、執行(x)許可權以外,還有3個特殊的許可權,分別是setuid、setgid和stick bit
1、setuid、setgid
先看個執行個體,查看你的/usr/bin/passwd 與/etc/passwd檔案的許可權
[[email protected] ~]# ls -l /usr/bin/passwd /etc/passwd
-rw-r--r-- 1 root root 1549 08-19 13:54 /etc/passwd
-rwsr-xr-x 1 root root 22984 2007-01-07 /usr/bin/passwd
眾所周知,/etc/passwd檔案存放的各個使用者的帳號與密碼資訊,/usr /bin/passwd是執行修改和查看此檔案的程式,但從許可權上看,/etc/passwd僅有root許可權的寫(w)權,可實際上每個使用者都可以通過 /usr/bin/passwd命令去修改這個檔案,於是這裡就涉及了linux裡的特殊許可權setuid,正如-rwsr-xr-x中的s
setuid就是:讓普通使用者擁有可以執行“只有root許可權才能執行”的特殊許可權,setgid同理指”組“
作為普通使用者是沒有許可權修改/etc/passwd檔案的,但給/usr/bin/passwd以setuid許可權後,普通使用者就可以通過執行passwd命令,臨時的擁有root許可權,去修改/etc/passwd檔案了
2、stick bit (粘貼位)
再看個執行個體,查看你的/tmp目錄的許可權
[[email protected] ~]# ls -dl /tmp
drwxrwxrwt 6 root root 4096 08-22 11:37 /tmp
tmp目錄是所有使用者共有的臨時檔案夾,所有使用者都擁有讀寫權限,這就必然出現一個問 題,A使用者在/tmp裡建立了檔案a.file,此時B使用者看了不爽,在/tmp裡把它給刪了(因為擁有讀寫權限),那肯定是不行的。實際上是不會發生這 種情況,因為有特殊許可權stick bit(粘貼位)許可權,正如drwxrwxrwt中的最後一個t
stick bit (粘貼位)就是:除非目錄的屬主和root使用者有許可權刪除它,除此之外其它使用者不能刪除和修改這個目錄。
也就是說,在/tmp目錄中,只有檔案的擁有者和root才能對其進行修改和刪除,其他使用者則不行,避免了上面所說的問題產生。用途一般是把一個檔案夾的的許可權都開啟,然後來共用檔案,象/tmp目錄一樣。
3、如何設定以上特殊許可權
setuid:chmod u+s xxx
setgid: chmod g+s xxx
stick bit : chmod o+t xxx
或者使用八進位方式,在原先的數字前加一個數字,三個許可權所代表的進位數與一般許可權的方式類似,如下:
suid guid stick bit
1 1 1
所以:suid的二進位串為:100,換算十進位為:4
guid的二進位串為:010,換算:2
stick bit 二進位串:001,換算:1
於是也可以這樣設:setuid:chmod 4755 xxx
setgid:chmod 2755 xxx
stick bit:chmod 1755 xxx
最後,在一些檔案設定了特殊許可權後,字母不是小寫s或者t,而是大寫的S和T,那代表此檔案的特殊許可權沒有生效,是因為你尚未給它對應使用者的x許可權
轉自:
http://www.cnblogs.com/huangzhen/archive/2011/08/22/2149300.html
Linux -- 特殊許可權 (轉)