一、SetGID
SGID即可以針對(duì)文件生效,也可以針對(duì)目錄生效,這和SUID明顯不同。
1、針對(duì)文件的作用
針對(duì)文件,SGID的含義如下:
(1)只有可執(zhí)行的二進(jìn)制程序才能設(shè)置SGID權(quán)限。
同SUID。
(2)命令執(zhí)行者要對(duì)該程序擁有x(執(zhí)行)權(quán)限。
同SUID。
(3)命令執(zhí)行在執(zhí)行程序的時(shí)候,組身份升級(jí)為該程序文件的屬組。
#查看locate命令
[root@localhost ~ ] # ll /usr/bin/locate
-rwx-s--x 1 root slocate 35612 8月 24 2010 /usr/bin/locate
#查看mlocate.db文件
[root@localhost ~ ] # ll /var/lib/mlocate/mlocate.db
-rw-r---1 root slocate 1838850 1月 20 04:29 /var/lib/mlocate/mlocate.db
當(dāng)普通用戶(hù)user1執(zhí)行locate命令時(shí),會(huì)發(fā)生如下事情:
-
/usr/bin/locate是可執(zhí)行二進(jìn)制程序,可以賦予SGID, - 執(zhí)行命令的用戶(hù)user1,對(duì)
/usr/bin/locate命令擁有執(zhí)行權(quán)限。 - 執(zhí)行
/usr/bin/locate命令時(shí),組身份會(huì)升級(jí)為slocate組,而slocate組對(duì)
/var/lib/mlocate/mlocate.db數(shù)據(jù)庫(kù)擁有r權(quán)限,所以普通用戶(hù)可以使用locate命令查詢(xún)mlocate.db數(shù)據(jù)庫(kù)。 - 命令結(jié)束,user1用戶(hù)的組身份返回為user1組。
(4)SetGID權(quán)限同樣只在該程序執(zhí)行過(guò)程中有效,也就是說(shuō)組身份改變只在程序執(zhí)行過(guò)程中有效。
2、針對(duì)目錄的作用
SGID針對(duì)目錄設(shè)置,含義如下:
- 普通用戶(hù)必須對(duì)此目錄擁有r和x權(quán)限,才能進(jìn)入此目錄。
- 普通用戶(hù)在此目錄中的有效組會(huì)變成此目錄的屬組。
- 若普通用戶(hù)對(duì)此目錄擁有w權(quán)限時(shí)(也就是其他人權(quán)限是7,普通用戶(hù)才能進(jìn)入目錄),新建的文件的默認(rèn)屬組是,這個(gè)目錄的屬組。
不明白,看下面的例子。
#進(jìn)入臨時(shí)目錄做此實(shí)驗(yàn)。因?yàn)榕R時(shí)目錄才允許普通用戶(hù)修改
[root@localhost ~ ] # cd /tmp/
#建立測(cè)試目錄
[root@localhost tmp] # mkdir dtest
#給測(cè)試目錄賦予SGID
[root@localhost tmp] # chmod g+s dtest
#查看dtest/目錄,SGID已經(jīng)生效
[root@localhost tmp] # ll -d dtest/
drwxr-sr-x 2 root `root` 4096 1月 20 06:04 dtest/
#給測(cè)試目錄權(quán)限,讓普通用戶(hù)可以寫(xiě),
#注意權(quán)限一定要是777,否則普通用戶(hù)進(jìn)入不了目錄。
[root@localhost tmp]#chmod 777 dtest/
#切換成普通用戶(hù)userl
[root@localhost tmp] # su - user1
#普通用戶(hù)進(jìn)入測(cè)試目錄,
#如果上邊權(quán)限不設(shè)置成777,測(cè)試普通用戶(hù)進(jìn)不來(lái)。
[user1@localhost ~ ]$ cd /tmp/dtest/
#普通用戶(hù)建立abc文件
[user1@localhost dtest]$ touch abc
#abc文件的默認(rèn)屬組不再是user1用戶(hù)組,而變成了dtest組的屬組root
[user1@localhost dtest]$ ll
總用量0
-rw-rw-r-1 userl `root` 0 1月 20 06:07 abc
總結(jié)上邊例子的意思:也就是說(shuō),root用戶(hù)如果給目錄賦予了
SGID特殊權(quán)限。那么普通用戶(hù)(user1)在該文件中所創(chuàng)建的文件的所有組不是user1,而是這個(gè)目錄的所屬組。
SGID針對(duì)目錄的作用本身沒(méi)有風(fēng)險(xiǎn)。就是賦予目錄的權(quán)限是777有些風(fēng)險(xiǎn),能不用就別用。
關(guān)于特殊權(quán)限SGID的針對(duì)目錄的作用,了解一下即可。