内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Linux中特殊權(quán)限SUID、SGID與SBIT的示例分析-創(chuàng)新互聯(lián)

小編給大家分享一下Linux中特殊權(quán)限SUID、SGID與SBIT的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

我們一直強(qiáng)調(diào)成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計對于企業(yè)的重要性,如果您也覺得重要,那么就需要我們慎重對待,選擇一個安全靠譜的網(wǎng)站建設(shè)公司,企業(yè)網(wǎng)站我們建議是要么不做,要么就做好,讓網(wǎng)站能真正成為企業(yè)發(fā)展過程中的有力推手。專業(yè)網(wǎng)站建設(shè)公司不一定是大公司,創(chuàng)新互聯(lián)建站作為專業(yè)的網(wǎng)絡(luò)公司選擇我們就是放心。

前言

對于linux中文件或目錄的權(quán)限,應(yīng)該都知道普通的rwx權(quán)限,我們先看看下面兩個的權(quán)限是什么

Linux中特殊權(quán)限SUID、SGID與SBIT的示例分析

Linux中特殊權(quán)限SUID、SGID與SBIT的示例分析

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

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

說明:本文的演示環(huán)境為 ubuntu 16.04。

SUID

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

Linux中特殊權(quán)限SUID、SGID與SBIT的示例分析

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

Linux中特殊權(quán)限SUID、SGID與SBIT的示例分析

上圖紅框中的權(quán)限信息有些奇怪,owner 的信息為 rws 而不是 rwx。當(dāng) s 出現(xiàn)在文件擁有者的 x 權(quán)限上時,就被稱為 SETUID BITS 或 SETUID ,其特點(diǎn)如下:

  • SUID 權(quán)限僅對二進(jìn)制可執(zhí)行文件有效

  • 如果執(zhí)行者對于該二進(jìn)制可執(zhí)行文件具有 x 的權(quán)限,執(zhí)行者將具有該文件的所有者的權(quán)限

  • 本權(quán)限僅在執(zhí)行該二進(jìn)制可執(zhí)行文件的過程中有效

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

  • tester 用戶對于 /usr/bin/passwd 這個程序具有執(zhí)行權(quán)限,因此可以執(zhí)行

  • passwd 程序passwd 程序的所有者為 root

  • tester 用戶執(zhí)行 passwd 程序的過程中會暫時獲得 root 權(quán)限

  • 因此 tester 用戶在執(zhí)行 passwd 程序的過程中可以修改 /etc/shadow 文件

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

Linux中特殊權(quán)限SUID、SGID與SBIT的示例分析

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

Linux中特殊權(quán)限SUID、SGID與SBIT的示例分析

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

$ sudo chmod 4755 /bin/cat

Linux中特殊權(quán)限SUID、SGID與SBIT的示例分析

現(xiàn)在 cat 已經(jīng)具有了 SUID 權(quán)限,試試看,是不是已經(jīng)可以 cat 到 /etc/shadow 的內(nèi)容了。因?yàn)檫@樣做非常不安全,所以趕快通過下面的命令把 cat 的 SUID 權(quán)限移除掉:

$ sudo chmod 755 /bin/cat

SGID

當(dāng) s 標(biāo)志出現(xiàn)在用戶組的 x 權(quán)限時稱為 SGID。SGID 的特點(diǎn)與 SUID 相同,我們通過 /usr/bin/mlocate 程序來演示其用法。mlocate 程序通過查詢數(shù)據(jù)庫文件 /var/lib/mlocate/mlocate.db 實(shí)現(xiàn)快速的文件查找。 mlocate 程序的權(quán)限如下圖所示:

Linux中特殊權(quán)限SUID、SGID與SBIT的示例分析

很明顯,它被設(shè)置了 SGID 權(quán)限。下面是數(shù)據(jù)庫文件 /var/lib/mlocate/mlocate.db 的權(quán)限信息:很明顯,它被設(shè)置了 SGID 權(quán)限。下面是數(shù)據(jù)庫文件 /var/lib/mlocate/mlocate.db 的權(quán)限信息:

Linux中特殊權(quán)限SUID、SGID與SBIT的示例分析

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

Linux中特殊權(quán)限SUID、SGID與SBIT的示例分析

除二進(jìn)制程序外,SGID 也可以用在目錄上。當(dāng)一個目錄設(shè)置了 SGID 權(quán)限后,它具有如下功能:

  • 用戶若對此目錄具有 r 和 x 權(quán)限,該用戶能夠進(jìn)入該目錄

  • 用戶在此目錄下的有效用戶組將變成該目錄的用戶組

  • 若用戶在此目錄下?lián)碛?w 權(quán)限,則用戶所創(chuàng)建的新文件的用戶組與該目錄的用戶組相同

下面看個例子,創(chuàng)建 testdir 目錄,目錄的權(quán)限設(shè)置如下:

Linux中特殊權(quán)限SUID、SGID與SBIT的示例分析

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

先創(chuàng)建一個名為 nickfile 的文件:

Linux中特殊權(quán)限SUID、SGID與SBIT的示例分析

這個文件的權(quán)限看起來沒有什么特別的。然后給 testdir 目錄設(shè)置 SGID 權(quán)限:

$ sudo chmod 2775 testdir

Linux中特殊權(quán)限SUID、SGID與SBIT的示例分析

然后再創(chuàng)建一個文件 nickfile2:

Linux中特殊權(quán)限SUID、SGID與SBIT的示例分析

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

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

SBIT

其實(shí) SBIT 與 SUID 和 SGID 的關(guān)系并不大。

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

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

Linux中特殊權(quán)限SUID、SGID與SBIT的示例分析

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

注:SBIT對文件不起作用。

設(shè)置 SUID、SGID、SBIT 權(quán)限

以數(shù)字的方式設(shè)置權(quán)限

SUID、SGID、SBIT 權(quán)限對應(yīng)的數(shù)字如下:

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

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

$ chmod 4755 filename

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

其實(shí),還可能出現(xiàn) S 和 T 的情況。S 和 t 是替代 x 這個權(quán)限的,但是,如果它本身沒有 x 這個權(quán)限,添加 SUID、SGID、SBIT 權(quán)限后就會顯示為大寫 S 或大寫 T。比如我們?yōu)橐粋€權(quán)限為 666 的文件添加 SUID、SGID、SBIT 權(quán)限:

Linux中特殊權(quán)限SUID、SGID與SBIT的示例分析

執(zhí)行 chmod 7666 nickfile,因?yàn)?666 表示 "-rw-rw-rw",均沒有 x 權(quán)限,所以最后變成了 "-rwSrwSrwT"。

通過符號類型改變權(quán)限

除了使用數(shù)字來修改權(quán)限,還可以使用符號:

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

以上是“Linux中特殊權(quán)限SUID、SGID與SBIT的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)站名稱:Linux中特殊權(quán)限SUID、SGID與SBIT的示例分析-創(chuàng)新互聯(lián)
文章分享:http://m.rwnh.cn/article40/djiseo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計公司、品牌網(wǎng)站設(shè)計面包屑導(dǎo)航、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計
营口市| 广灵县| 新乡县| 商丘市| 广灵县| 成都市| 许昌县| 东丰县| 福贡县| 连山| 四会市| 北票市| 铁岭市| 炎陵县| 海安县| 灵宝市| 阿巴嘎旗| 万源市| 龙陵县| 邓州市| 内黄县| 隆德县| 化州市| 拜城县| 阜新| 静安区| 犍为县| 青海省| 高淳县| 四会市| 曲阳县| 巴林左旗| 连城县| 福建省| 安平县| 桦南县| 北流市| 汾西县| 富顺县| 灵宝市| 兴隆县|