新聞中心
SetGID,簡(jiǎn)稱
SGID 特殊權(quán)限。例如:

成都創(chuàng)新互聯(lián)公司是一家專注于成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)與策劃設(shè)計(jì),湘鄉(xiāng)網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:湘鄉(xiāng)等地區(qū)。湘鄉(xiāng)做網(wǎng)站價(jià)格咨詢:028-86922220
[root@localhost ~]# ll /usr/bin/locate
-rwx--s--x. 1 root slocate 35612 8月24 2010 /usr/bin/locate
與 SUID 不同的是,SGID 既可以對(duì)文件進(jìn)行配置,也可以對(duì)目錄進(jìn)行配置。
SetGID(SGID)對(duì)文件的作用
同 SUID 類似,對(duì)于文件來說,SGID 具有如下幾個(gè)特點(diǎn):
- SGID 只針對(duì)可執(zhí)行文件有效,換句話說,只有可執(zhí)行文件才可以被賦予 SGID 權(quán)限,普通文件賦予 SGID 沒有意義。
- 用戶需要對(duì)此可執(zhí)行文件有 x 權(quán)限;
- 用戶在執(zhí)行具有 SGID 權(quán)限的可執(zhí)行文件時(shí),用戶的群組身份會(huì)變?yōu)槲募鶎偃航M;
- SGID 權(quán)限賦予用戶改變組身份的效果,只在可執(zhí)行文件運(yùn)行過程中有效;
其實(shí),SGID 和 SUID 的不同之處就在于,SUID 賦予用戶的是文件所有者的權(quán)限,而 SGID 賦予用戶的是文件所屬組的權(quán)限,就這么簡(jiǎn)單。
就以本節(jié)開頭的 locate 命令為例,可以看到,/usr/bin/locate 文件被賦予了 SGID 的特殊權(quán)限,這就意味著,當(dāng)普通用戶使用 locate 命令時(shí),該用戶的所屬組會(huì)直接變?yōu)?locate 命令的所屬組,也就是 slocate。
我們知道,locate 命令是用于在系統(tǒng)中按照文件名查找符合條件的文件的,當(dāng)執(zhí)行搜索操作時(shí),它會(huì)通過搜索 /var/lib/mlocate/mlocate.db 這個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù)找到答案,我們來看看此數(shù)據(jù)庫(kù)的權(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,雖然對(duì)文件只擁有 r 權(quán)限,但對(duì)于普通用戶執(zhí)行 locate 命令來說,已經(jīng)足夠了。一方面,普通用戶對(duì) locate命令擁有執(zhí)行權(quán)限,其次,locate 命令擁有 SGID 權(quán)限,這使得普通用戶在執(zhí)行 locate 命令時(shí),所屬組身份會(huì)變?yōu)?slocate,而 slocate 對(duì) mlocate.db 數(shù)據(jù)庫(kù)文件擁有 r 權(quán)限,所以即便是普通用戶,也可以成功執(zhí)行 locate 命令。
再次強(qiáng)調(diào),無論是 SUID,還是 SGID,它們對(duì)用戶身份的轉(zhuǎn)換,只有在命令執(zhí)行的過程中有效,一旦命令執(zhí)行完畢,身份轉(zhuǎn)換也隨之失效。
SetGID(SGID)對(duì)目錄的作用
事實(shí)上,SGID 也能作用于目錄,且這種用法很常見。
當(dāng)一個(gè)目錄被賦予 SGID 權(quán)限后,進(jìn)入此目錄的普通用戶,其有效群組會(huì)變?yōu)樵撃夸浀乃鶎俳M,會(huì)就使得用戶在創(chuàng)建文件(或目錄)時(shí),該文件(或目錄)的所屬組將不再是用戶的所屬組,而使用的是目錄的所屬組。
也就是說,只有當(dāng)普通用戶對(duì)具有 SGID 權(quán)限的目錄有 rwx 權(quán)限時(shí),SGID 的功能才能完全發(fā)揮。比如說,如果用戶對(duì)該目錄僅有 rx 權(quán)限,則用戶進(jìn)入此目錄后,雖然其有效群組變?yōu)榇四夸浀乃鶎俳M,但由于沒有 x 權(quán)限,用戶無法在目錄中創(chuàng)建文件或目錄,SGID 權(quán)限也就無法發(fā)揮它的作用。
舉個(gè)例子:
[root@localhost ~]# cd /tmp
#進(jìn)入臨時(shí)目錄做此實(shí)驗(yàn)。因?yàn)橹挥信R時(shí)目錄才允許普通用戶修改
[root@localhost tmp]# mkdir dtest
#建立測(cè)試目錄
[root@localhost tmp]# chmod g+s dtest
#給測(cè)試目錄賦予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
#給測(cè)試目錄賦予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/
#普通用戶進(jìn)入測(cè)試目錄
[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 目錄的所屬組)。
網(wǎng)頁名稱:LinuxSetGID(SGID)文件特殊權(quán)限用法詳解
當(dāng)前URL:http://www.5511xx.com/article/cdhhcpc.html


咨詢
建站咨詢
