首頁 > 軟體

Linux特殊許可權SUIG、SGID、SBIT

2020-06-16 17:09:54

一、SetUID與SGID

  • 只能用於二進位制程式
  • 執行者需要有該二進位制程式的x許可權
  • 執行具有SUID許可權的二進位制程式,那麼執行者將具有該二進位制程式所有者的許可權。

舉例來說,/etc/passwd檔案的許可權是 -rw-r--r--,使用者更改密碼時需要對passwd檔案進行寫操作,root可以讀寫不用說,那普通使用者為什麼也能進行修改呢?這裡就需要SUID來解決。
修改密碼時是用/usr/bin/passwd工具進行修改的。setuid的作用是讓執行該命令的使用者以該命令擁有者的許可權去執行,就是普通使用者執行passwd時會擁有root的許可權,這樣就可以修改/etc/passwd這個檔案了。

下面許可權中的x就標誌著SUID

[root@CentOS7 aubin]# ls -al /usr/bin/passwd 
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd

setgid的意思和它是一樣的,即讓執行檔案的使用者以該檔案所屬組的許可權去執行。

二、stick bit(黏滯位)

以/tmp為例,tmp為存放臨時檔案的資料夾。所有使用者都可以對他進行讀寫執行。那如果A使用者建立了一個檔案再tmp中,B使用者把給刪除了。這種情況是不允許出現的。如果設定了stick bit(黏滯位),那目錄下的檔案就只有root和建立者有許可權區讀寫執行,其他人是無法更改的。這就是黏滯位的作用

  • 黏滯位只能針對目錄設定
  • SGID與SUUID可以設定目錄跟檔案

三、特殊許可權得具體設定

  • SUID
    sud一般情況下都設定在二進位制檔案上,設定在目錄上沒有意義
    啟動為進程之後,其進程的屬主為原程式檔案的屬主

    [root@centos7 app]# chmod u+s file 
    [root@centos7 app]# chmod u-s file 
  • 檔案設定SGID
    啟動為進程之後,其進程的屬主為原程式檔案的屬組

    [root@centos7 app]# chmod g+s file 
    [root@centos7 app]# chmod g-s file  
  • 目錄設定SGID
    目錄被設定了SGID,則對此目錄有寫許可權的使用者在此目錄中建立的檔案所屬的組為此目錄的屬組

    [root@centos7 app]# chmod g-s dir/
    [root@centos7 app]# chmod g+s dir/
  • SBIT
    在目錄上設定SBIT,則在目錄下建立的檔案只有root與建立者有修改和刪除許可權
    SBIT設定在檔案上也毫無意義

    [root@centos7 app]# chmod o+t dir/
    [root@centos7 app]# chmod o-t dir/ 

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-07/145949.htm


IT145.com E-mail:sddin#qq.com