麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 服務器 > Linux服務器 > 正文

Linux中特殊權限SUID、SGID與SBIT的深入講解

2024-09-05 23:05:01
字體:
來源:轉載
供稿:網友

前言

對于linux中文件或目錄的權限,應該都知道普通的rwx權限(關于linux中rwx權限的看我的這篇博文http://www.cnblogs.com/javaee6/p/3994750.html)。我們先看看下面兩個的權限是什么

Linux,特殊權限,SUID,SGID,SBIT

Linux,特殊權限,SUID,SGID,SBIT

非常奇怪,/tmp目錄和 passwd文件的權限怎么怪怪的,怎么有s和t權限呢。看了下面的內容你就明白了。

setuid 和 setgid 分別是 set uid ID upon execution 和 set group ID upon execution 的縮寫。我們一般會再次把它們縮寫為 suid 和 sgid。它們是控制文件訪問的權限標志(flag),它們分別允許用戶以可執行文件的 owner 或 owner group 的權限運行可執行文件。

說明:本文的演示環境為 ubuntu 16.04。

SUID

在 Linux 中,所有賬號的密碼記錄在 /etc/shadow 這個文件中,并且只有 root 可以讀寫入這個文件:

Linux,特殊權限,SUID,SGID,SBIT

如果另一個普通賬號 tester 需要修改自己的密碼,就要訪問 /etc/shadow 這個文件。但是明明只有 root 才能訪問 /etc/shadow 這個文件,這究竟是如何做到的呢?事實上,tester 用戶是可以修改 /etc/shadow 這個文件內的密碼的,就是通過 SUID 的功能。讓我們看看 passwd 程序文件的權限信息:

Linux,特殊權限,SUID,SGID,SBIT

上圖紅框中的權限信息有些奇怪,owner 的信息為 rws 而不是 rwx。當 s 出現在文件擁有者的 x 權限上時,就被稱為 SETUID BITS 或 SETUID ,其特點如下:

  • SUID 權限僅對二進制可執行文件有效
  • 如果執行者對于該二進制可執行文件具有 x 的權限,執行者將具有該文件的所有者的權限
  • 本權限僅在執行該二進制可執行文件的過程中有效

下面我們來看 tester 用戶是如何利用 SUID 權限完成密碼修改的:

  • tester 用戶對于 /usr/bin/passwd 這個程序具有執行權限,因此可以執行
  • passwd 程序passwd 程序的所有者為 root
  • tester 用戶執行 passwd 程序的過程中會暫時獲得 root 權限
  • 因此 tester 用戶在執行 passwd 程序的過程中可以修改 /etc/shadow 文件

但是如果由 tester 用戶執行 cat 命令去讀取 /etc/shadow 文件確是不行的:

Linux,特殊權限,SUID,SGID,SBIT

原因很清楚,tester 用戶沒有讀 /etc/shadow 文件的權限,同時 cat 程序也沒有被設置 SUID。我們可以通過下圖來理解這兩種情況:

Linux,特殊權限,SUID,SGID,SBIT

如果想讓任意用戶通過 cat 命令讀取 /etc/shadow 文件的內容也是非常容易的,給它設置 SUID 權限就可以了:

$ sudo chmod 4755 /bin/cat

Linux,特殊權限,SUID,SGID,SBIT

現在 cat 已經具有了 SUID 權限,試試看,是不是已經可以 cat 到 /etc/shadow 的內容了。因為這樣做非常不安全,所以趕快通過下面的命令把 cat 的 SUID 權限移除掉:

$ sudo chmod 755 /bin/cat

SGID

當 s 標志出現在用戶組的 x 權限時稱為 SGID。SGID 的特點與 SUID 相同,我們通過 /usr/bin/mlocate 程序來演示其用法。mlocate 程序通過查詢數據庫文件 /var/lib/mlocate/mlocate.db 實現快速的文件查找。 mlocate 程序的權限如下圖所示:

Linux,特殊權限,SUID,SGID,SBIT

很明顯,它被設置了 SGID 權限。下面是數據庫文件 /var/lib/mlocate/mlocate.db 的權限信息:很明顯,它被設置了 SGID 權限。下面是數據庫文件 /var/lib/mlocate/mlocate.db 的權限信息:

Linux,特殊權限,SUID,SGID,SBIT

普通用戶 tester 執行 mlocate 命令時,tester 就會獲得用戶組 mlocate 的執行權限,又由于用戶組 mlocate 對 mlocate.db 具有讀權限,所以 tester 就可以讀取 mlocate.db 了。程序的執行過程如下圖所示:

Linux,特殊權限,SUID,SGID,SBIT

除二進制程序外,SGID 也可以用在目錄上。當一個目錄設置了 SGID 權限后,它具有如下功能:

  • 用戶若對此目錄具有 r 和 x 權限,該用戶能夠進入該目錄
  • 用戶在此目錄下的有效用戶組將變成該目錄的用戶組
  • 若用戶在此目錄下擁有 w 權限,則用戶所創建的新文件的用戶組與該目錄的用戶組相同

下面看個例子,創建 testdir 目錄,目錄的權限設置如下:

Linux,特殊權限,SUID,SGID,SBIT

此時目錄 testdir 的 owner 是 nick,所屬的 group 為 tester。

先創建一個名為 nickfile 的文件:

Linux,特殊權限,SUID,SGID,SBIT

這個文件的權限看起來沒有什么特別的。然后給 testdir 目錄設置 SGID 權限:

$ sudo chmod 2775 testdir

Linux,特殊權限,SUID,SGID,SBIT

然后再創建一個文件 nickfile2:

Linux,特殊權限,SUID,SGID,SBIT

新建的文件所屬的組為 tester!

總結一下,當 SGID 作用于普通文件時,和 SUID 類似,在執行該文件時,用戶將獲得該文件所屬組的權限。當 SGID 作用于目錄時,意義就非常重大了。當用戶對某一目錄有寫和執行權限時,該用戶就可以在該目錄下建立文件,如果該目錄用 SGID 修飾,則該用戶在這個目錄下建立的文件都是屬于這個目錄所屬的組。

SBIT

其實 SBIT 與 SUID 和 SGID 的關系并不大。

SBIT 是 the restricted deletion flag or sticky bit 的簡稱。

SBIT 目前只對目錄有效,用來阻止非文件的所有者刪除文件。比較常見的例子就是 /tmp 目錄:

Linux,特殊權限,SUID,SGID,SBIT

權限信息中最后一位 t 表明該目錄被設置了 SBIT 權限。SBIT 對目錄的作用是:當用戶在該目錄下創建新文件或目錄時,僅有自己和 root 才有權力刪除。

注:SBIT對文件不起作用。

設置 SUID、SGID、SBIT 權限

以數字的方式設置權限

SUID、SGID、SBIT 權限對應的數字如下:

SUID->4SGID->2SBIT->1

所以如果要為一個文件權限為 "-rwxr-xr-x" 的文件設置 SUID 權限,需要在原先的 755 前面加上 4,也就是 4755:

$ chmod 4755 filename

同樣,可以用 2 和 1 來設置 SGID 和 SBIT 權限。設置完成后分別會用 s, s, t 代替文件權限中的 x。

其實,還可能出現 S 和 T 的情況。S 和 t 是替代 x 這個權限的,但是,如果它本身沒有 x 這個權限,添加 SUID、SGID、SBIT 權限后就會顯示為大寫 S 或大寫 T。比如我們為一個權限為 666 的文件添加 SUID、SGID、SBIT 權限:

Linux,特殊權限,SUID,SGID,SBIT

執行 chmod 7666 nickfile,因為 666 表示 "-rw-rw-rw",均沒有 x 權限,所以最后變成了 "-rwSrwSrwT"。

通過符號類型改變權限

除了使用數字來修改權限,還可以使用符號:

$ chmod u+s testfile # 為 testfile 文件加上 SUID 權限。$ chmod g+s testdir # 為 testdir 目錄加上 SGID 權限。$ chmod o+t testdir # 為 testdir 目錄加上 SBIT 權限。

總結

SUID、SGID、SBIT 權限都是為了實現特殊功能而設計的,其目的是彌補 ugo 權限無法實現的一些使用場景。


注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 激情视频在线播放 | 国产一区二区三区精品在线观看 | 午夜精品一区二区三区免费 | 久久影院免费观看 | 国产性tv国产精品 | 青草久久av| 中文字幕爱爱视频 | 国产精品成人一区二区三区电影毛片 | 精品国产呦系列在线看 | 看免费黄色大片 | 性生活视频一级 | 国产美女爽到喷白浆的 | 成人男女啪啪免费观看网站四虎 | 免费激情网址 | 国产精品观看在线亚洲人成网 | 国产999精品久久久久 | 日本网站一区二区三区 | 免费人成在线观看网站 | 久久久精品视 | 免费国产羞羞网站视频 | 欧美a∨一区二区三区久久黄 | 成人毛片网 | 亚洲天堂岛国片 | 日韩精品久久久久久久电影99爱 | 欧美性色生活片免费播放 | 成人国产精品久久久 | 日韩精品99久久久久久 | 草久在线| 蜜桃传媒视频麻豆第一区免费观看 | 中文字幕精品一区久久久久 | 护士hd欧美free性xxxx | 成年人小视频在线观看 | 日韩视频中文 | 欧美精品一区二区三区久久久 | 久国久产久精永久网页 | 久久亚洲网 | 一级看片免费视频 | 国产精品久久久久久久久久 | 国产激情网 | 国产福利视频在线观看 | 羞羞答答www网站进入 |