<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Linux 特殊權(quán)限 SUID,SGID,SBIT

      setuid 和 setgid 分別是 set uid ID upon execution 和 set group ID upon execution 的縮寫(xiě)。我們一般會(huì)再次把它們縮寫(xiě)為 suid 和 sgid。它們是控制文件訪問(wèn)的權(quán)限標(biāo)志(flag),它們分別允許用戶以可執(zhí)行文件的 owner 或 owner group 的權(quán)限運(yùn)行可執(zhí)行文件。
      說(shuō)明:本文的演示環(huán)境為 ubuntu 16.04。

      SUID

      在 Linux 中,所有賬號(hào)的密碼記錄在 /etc/shadow 這個(gè)文件中,并且只有 root 可以讀寫(xiě)入這個(gè)文件:

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

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

      • SUID 權(quán)限僅對(duì)二進(jìn)制可執(zhí)行文件有效
      • 如果執(zhí)行者對(duì)于該二進(jìn)制可執(zhí)行文件具有 x 的權(quán)限,執(zhí)行者將具有該文件的所有者的權(quán)限
      • 本權(quán)限僅在執(zhí)行該二進(jìn)制可執(zhí)行文件的過(guò)程中有效

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

      1. tester 用戶對(duì)于 /usr/bin/passwd 這個(gè)程序具有執(zhí)行權(quán)限,因此可以執(zhí)行 passwd 程序
      2. passwd 程序的所有者為 root
      3. tester 用戶執(zhí)行 passwd 程序的過(guò)程中會(huì)暫時(shí)獲得 root 權(quán)限
      4. 因此 tester 用戶在執(zhí)行 passwd 程序的過(guò)程中可以修改 /etc/shadow 文件

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

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

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

      $ sudo chmod 4755 /bin/cat

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

      $ sudo chmod 755 /bin/cat

      SGID

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

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

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

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

      1. 用戶若對(duì)此目錄具有 r 和 x 權(quán)限,該用戶能夠進(jìn)入該目錄
      2. 用戶在此目錄下的有效用戶組將變成該目錄的用戶組
      3. 若用戶在此目錄下?lián)碛?w 權(quán)限,則用戶所創(chuàng)建的新文件的用戶組與該目錄的用戶組相同

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

      此時(shí)目錄 testdir 的 owner 是 nick,所屬的 group 為 tester。
      先創(chuàng)建一個(gè)名為 nickfile 的文件:

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

      $ sudo chmod 2775 testdir

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

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

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

      SBIT

      其實(shí) SBIT 與 SUID 和 SGID 的關(guān)系并不大。
      SBIT 是 the  restricted  deletion  flag  or  sticky  bit 的簡(jiǎn)稱。
      SBIT 目前只對(duì)目錄有效,用來(lái)阻止非文件的所有者刪除文件。比較常見(jiàn)的例子就是 /tmp 目錄:

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

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

      以數(shù)字的方式設(shè)置權(quán)限
      SUID、SGID、SBIT 權(quán)限對(duì)應(yīng)的數(shù)字如下:

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

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

      $ chmod 4755 filename

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

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

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

      通過(guò)符號(hào)類型改變權(quán)限

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

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

      總結(jié)

      SUID、SGID、SBIT 權(quán)限都是為了實(shí)現(xiàn)特殊功能而設(shè)計(jì)的,其目的是彌補(bǔ) ugo 權(quán)限無(wú)法實(shí)現(xiàn)的一些使用場(chǎng)景。

      參考:
      chmod man page
      setuid-Wikipedia
      linux中SUID,SGID和SBIT的奇妙用途
      linux特殊權(quán)限SUID、SGID、SBIT

      posted @ 2018-09-17 08:53  sparkdev  閱讀(32867)  評(píng)論(4)    收藏  舉報(bào)
      主站蜘蛛池模板: 郓城县| 99在线精品国自产拍中文字幕| 午夜在线观看成人av| 国产精品色悠悠在线观看| 春色校园综合人妻av| 蜜桃久久精品成人无码av| 亚洲欧美高清在线精品一区二区| 日韩人妻无码精品系列| 国产嫩草精品网亚洲av| 日韩三级一区二区在线看| 欧美日韩一区二区三区视频播放| 国产极品粉嫩学生一线天| 长岛县| 成av人片一区二区久久| 国产天堂亚洲国产碰碰| 在线观看成人年视频免费| 亚洲国产一区二区av| 老司机久久99久久精品播放免费 | 少妇激情一区二区三区视频| 亚洲中文字幕一区精品自| 亚洲精品三区二区一区一| 亚洲午夜伦费影视在线观看| 岛国岛国免费v片在线观看| 国产私拍福利精品视频| 国产精品福利片在线观看| 4480yy亚洲午夜私人影院剧情 | 人人妻人人澡人人爽欧美一区双 | 成人国产精品中文字幕| 亚洲中文字幕国产综合| 亚洲欧洲日韩国内精品| 国产欧美日韩高清在线不卡 | 西西人体大胆444WWW| 日本边添边摸边做边爱| 国产极品美女高潮无套| 国产中文三级全黄| 久久午夜色播影院| 天天躁久久躁日日躁| 国产在线精品欧美日韩电影| 性欧美三级在线观看| 久久精品国产久精国产69| 67194熟妇在线观看线路|