suid、sgid、sbit
先用ls -l命令看一下下面幾個檔案或目錄的資訊:
-rwsr-xr-x. 1 root root 25980
2月 22
2012 /usr/bin/passwd
-rwx--s--x. 1 root slocate 35612
8月 24
2010 /usr/bin/locate
drwxrwxrwt. 24 root root 20480 10月 14 17:55 /tmp
會發現在檔案擁有者,檔案擁有者所在組,其他組的許可權x的位置上被s或者t取代了,這是什麼?
先來看看他們的作用:
suid:當使用者執行具有x許可權的二進位制檔案時擁有此檔案所有者的許可權
sgid:當使用者執行具有x許可權的二進位制檔案時擁有此檔案所在組的許可權,另外也可以對目錄設定此許可權
sbit:當使用者對某個目錄具有w和x許可權時,在該目錄下建立的檔案和目錄只有該使用者和root使用者才可以刪除
聽著很繞,舉個例子:
比如普通使用者用passwd命令去修改密碼,而密碼是存在/etc/shadow檔案中,而普通使用者是無法修改這個檔案的,也就無法把新密碼儲存進來。
它的流程是這樣的:
一、先看下/usr/bin/passwd這個檔案,也就時命令passwd。
-rwsr
-xr-x
.1 root root 25980
2月 22
2012 /usr/bin/passwd
發現這個檔案的擁有者是root,並且其他組的許可權為r-x,也就說普通使用者對其具有r和x的許可權。
二、既然普通使用者對其具有執行許可權,因此當普通使用者執行這條命令時,由於s這個許可權的存在,那麼在執行過程中會暫時獲取root的許可權。
三、由於只有root才可以修改/etc/shadow
檔案,而在此次執行過程中已經得到了root使用者的支援,因此密碼會順利得寫入到這個檔案中。
那麼,怎樣才能增加這種許可權呢?
可以參照第1節許可權,使用chmod命令修改,命令如下:
suid 4 sgid 2 sbit 1
chmod
6777
這就新增了suid和sgid許可權,就是在原有許可權的前面加了乙個6。
另外,還有可能出現rwsrwsrwt大寫的情況,變成rwsrwsrwt,出現這種情況是因為使用者不具備檔案的x許可權,而又用上面的命令強加了特殊許可權。這就矛盾了,因為這三個許可權的基礎是使用者對其有有x許可權,現在連x許可權都沒有,那有sst這個許可權又有什麼用呢?
Linux檔案特殊許可權
linux中檔案除了r w x這三個讀 寫 執行的許可權還有特殊許可權 s t suid許可權 當s這個標誌出現在檔案所有者的x許可權上時 如 rwsr xr x 則被稱為set uid,簡稱suid許可權。suid限制 1 suid許可權僅對二進位制程式 可執行程式 有效。2 執行者對於該程式需要...
Linux檔案特殊許可權
檔案特殊許可權set uid set gid sticky bit 1 set uid 該許可權針對二進位制可執行檔案,使檔案在執行階段具有檔案所有者的許可權。比如 passwd具有該許可權 chmod u s filename filename必須是二進位制檔案 2 set gid 改許可權針對目...
Linux檔案特殊許可權
suid chmod u s 檔名或者chmod 4777 檔名,該檔案執行的時候檔案的執行者將擁有檔案所有者的許可權 sgid chmod g s 檔名或者目錄 或者 chmod 2777 檔名,該對於目錄而言,檔案的所屬組和目錄的所屬組相同 root westos pub ll total 8 ...