Linux檔案特殊許可權

2021-07-10 09:12:20 字數 1337 閱讀 1143

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 ...