av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

LinuxSetGID(SGID)文件特殊權(quán)限用法詳解

前面學(xué)習(xí)了 SetUID,那么,什么是 SetGID 呢?很簡單,當(dāng) s 權(quán)限位于所屬組的 x 權(quán)限位時,就被稱為 
SetGID,簡稱 
SGID 特殊權(quán)限。例如:

成都創(chuàng)新互聯(lián)公司是一家專注于成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)與策劃設(shè)計,湘鄉(xiāng)網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:湘鄉(xiāng)等地區(qū)。湘鄉(xiāng)做網(wǎng)站價格咨詢:028-86922220

[root@localhost ~]# ll /usr/bin/locate
-rwx--s--x. 1 root slocate 35612 8月24 2010 /usr/bin/locate

與 SUID 不同的是,SGID 既可以對文件進行配置,也可以對目錄進行配置。

SetGID(SGID)對文件的作用

同 SUID 類似,對于文件來說,SGID 具有如下幾個特點:

  • SGID 只針對可執(zhí)行文件有效,換句話說,只有可執(zhí)行文件才可以被賦予 SGID 權(quán)限,普通文件賦予 SGID 沒有意義。
  • 用戶需要對此可執(zhí)行文件有 x 權(quán)限;
  • 用戶在執(zhí)行具有 SGID 權(quán)限的可執(zhí)行文件時,用戶的群組身份會變?yōu)槲募鶎偃航M;
  • SGID 權(quán)限賦予用戶改變組身份的效果,只在可執(zhí)行文件運行過程中有效;

其實,SGID 和 SUID 的不同之處就在于,SUID 賦予用戶的是文件所有者的權(quán)限,而 SGID 賦予用戶的是文件所屬組的權(quán)限,就這么簡單。

就以本節(jié)開頭的 locate 命令為例,可以看到,/usr/bin/locate 文件被賦予了 SGID 的特殊權(quán)限,這就意味著,當(dāng)普通用戶使用 locate 命令時,該用戶的所屬組會直接變?yōu)?locate 命令的所屬組,也就是 slocate。

我們知道,locate 命令是用于在系統(tǒng)中按照文件名查找符合條件的文件的,當(dāng)執(zhí)行搜索操作時,它會通過搜索 /var/lib/mlocate/mlocate.db 這個數(shù)據(jù)庫中的數(shù)據(jù)找到答案,我們來看看此數(shù)據(jù)庫的權(quán)限:

[root@localhost ~]# ll /var/lib/mlocate/mlocate.db
-rw-r-----. 1 root slocate 1838850 1月20 04:29 /var/lib/mlocate/mlocate.db

可以看到,mlocate.db 文件的所屬組為 slocate,雖然對文件只擁有 r 權(quán)限,但對于普通用戶執(zhí)行 locate 命令來說,已經(jīng)足夠了。一方面,普通用戶對 locate命令擁有執(zhí)行權(quán)限,其次,locate 命令擁有 SGID 權(quán)限,這使得普通用戶在執(zhí)行 locate 命令時,所屬組身份會變?yōu)?slocate,而 slocate 對 mlocate.db 數(shù)據(jù)庫文件擁有 r 權(quán)限,所以即便是普通用戶,也可以成功執(zhí)行 locate 命令。

再次強調(diào),無論是 SUID,還是 SGID,它們對用戶身份的轉(zhuǎn)換,只有在命令執(zhí)行的過程中有效,一旦命令執(zhí)行完畢,身份轉(zhuǎn)換也隨之失效。

SetGID(SGID)對目錄的作用

事實上,SGID 也能作用于目錄,且這種用法很常見。

當(dāng)一個目錄被賦予 SGID 權(quán)限后,進入此目錄的普通用戶,其有效群組會變?yōu)樵撃夸浀乃鶎俳M,會就使得用戶在創(chuàng)建文件(或目錄)時,該文件(或目錄)的所屬組將不再是用戶的所屬組,而使用的是目錄的所屬組。

也就是說,只有當(dāng)普通用戶對具有 SGID 權(quán)限的目錄有 rwx 權(quán)限時,SGID 的功能才能完全發(fā)揮。比如說,如果用戶對該目錄僅有 rx 權(quán)限,則用戶進入此目錄后,雖然其有效群組變?yōu)榇四夸浀乃鶎俳M,但由于沒有 x 權(quán)限,用戶無法在目錄中創(chuàng)建文件或目錄,SGID 權(quán)限也就無法發(fā)揮它的作用。

舉個例子:

[root@localhost ~]# cd /tmp
#進入臨時目錄做此實驗。因為只有臨時目錄才允許普通用戶修改
[root@localhost tmp]# mkdir dtest
#建立測試目錄
[root@localhost tmp]# chmod g+s dtest
#給測試目錄賦予SetGID權(quán)限
[root@localhost tmp]# ll -d dtest
drwxr-sr-x 2 root root 4096 Apr 19 06:04 dtest
#SetGID權(quán)限已經(jīng)生效
[root@localhost tmp]# chmod 777 dtest
#給測試目錄賦予777權(quán)限,讓普通用戶可以寫
[root@localhost tmp]# su - lamp
[lamp@localhost ~]# grep lamp /etc/passwd /etc/group
/etc/passwd:lamp:x:501:501::/home/lamp:/bin/bash
/etc/group:lamp:x:501:
#切換成普通用戶lamp,此用戶的所屬群組為 lamp
[lamp@localhost ~]$ cd /tmp/dtest/
#普通用戶進入測試目錄
[lamp@localhost dtest]$ touch abc
[lamp@localhost dtest]$ mkdir zimulu
#在此目錄中創(chuàng)建新的文件 abc 和子目錄 zimulu
[lamp@localhost dtest]$ ll
total 0
-rw-rw-r--. 1 lamp root 0 Apr 19 06:07 abc
drwxrwsr-x. 2 lamp root 40 Apr 19 06:07 zimulu

可以看到,雖然是 lamp 用戶創(chuàng)建的 abc 文件和 zimulu 目錄,但它們的所屬組都不是 lamp(lamp 用戶的所屬組),而是 root(dtest 目錄的所屬組)。


當(dāng)前題目:LinuxSetGID(SGID)文件特殊權(quán)限用法詳解
網(wǎng)頁鏈接:http://uogjgqi.cn/article/cdhhcpc.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流