您好,登錄后才能下訂單哦!
在linux中,有一個(gè)安全上下文的概念,一個(gè)進(jìn)程(運(yùn)行的程序)能否訪(fǎng)問(wèn)某個(gè)文件,取決于發(fā)起進(jìn)程的用戶(hù)對(duì)被操作文件存在什么權(quán)限。
A. 如果進(jìn)程的發(fā)起者是該被訪(fǎng)問(wèn)文件的屬主,則以文件屬主的權(quán)限來(lái)訪(fǎng)問(wèn)
B. 否則,如果進(jìn)程的發(fā)起者是屬于該被訪(fǎng)問(wèn)文件的屬組中的用戶(hù),則以文件屬組的權(quán)限來(lái)訪(fǎng)問(wèn)
C. 否則,以其他用戶(hù)來(lái)訪(fǎng)問(wèn)此文件
而在這個(gè)權(quán)限之外,還存在著三種特殊權(quán)限
SUID:當(dāng)對(duì)某一個(gè)程序文件設(shè)置了SUID置位,則該進(jìn)程(程序)訪(fǎng)問(wèn)系統(tǒng)上的文件時(shí),以程序的屬主的身份來(lái)訪(fǎng)問(wèn)該文件,而不是執(zhí)行程序的用戶(hù)的權(quán)限來(lái)訪(fǎng)問(wèn)文件。
SGID:當(dāng)某目錄的屬組對(duì)目錄有寫(xiě)權(quán)限,并且設(shè)置了SGID置位時(shí),屬于屬組的這些用戶(hù)在這個(gè)目錄下創(chuàng)建文件時(shí),被創(chuàng)建的文件的屬組默認(rèn)會(huì)變成該目錄的屬組,而不是創(chuàng)建文件的用戶(hù)的基本組。
SBIT:當(dāng)對(duì)某目錄設(shè)置了SBIT置位時(shí),用戶(hù)只能刪除自己在該目錄下創(chuàng)建的文件,而不能刪除其他用戶(hù)創(chuàng)建的文件,哪怕用戶(hù)對(duì)目錄存在寫(xiě)權(quán)限。
操作:
1. SUID: ? chmod u+s
2. SGID: ?chmod g+s
3. SBIT: chmod o+t
實(shí)驗(yàn):
一、 SUID實(shí)驗(yàn)
將/bin/cat復(fù)制到/test目錄,將/test/bin程序進(jìn)行SUID置位。讓一個(gè)普通使用該程序來(lái)查看/etc/shadow文件。然后再用系統(tǒng)自帶的/bin/cat來(lái)查看該文件。
# ?將/bin/cat復(fù)制到/test目錄
[root@liuqing test]# cp /bin/cat /test/
[root@liuqing test]# ll /test
總用量 60
-rwxr-xr-x. 1 root root 54080 11月 21 17:04 cat
#對(duì)/test/cat文件進(jìn)行SUID置位,該文件的屬主屬組都是root
[root@liuqing test]# chmod u+s /test/cat
[root@liuqing test]# ll
總用量 60
-rwsr-xr-x. 1 root root 54080 11月 21 17:04 cat
-rw-r-----. 1 lyf ?lyf ? ? 14 11月 21 16:15 file1.txt
#切換到普通用戶(hù)liuqing
[root@liuqing test]# su - liuqing
上一次登錄:四 11月 21 16:05:54 CST 2019pts/1 上
[liuqing@liuqing ~]$
#普通用戶(hù)liuqing,使用/test/cat可以查看/etc/shadow
[liuqing@liuqing ~]$ /test/cat /etc/shadow
root:$6$gdIxmcOy$JSDVjR0tSdQfVTDrukonWIfRLdDIut63ZYiucsTmj8TPJ0Sq/wZduJhWgSUidlHeW6pmISq.B7Vx4OlGX1P1p1:18185:0:99999:7:::
#普通用戶(hù)使用系統(tǒng)自帶的/bin/cat,不能查看/etc/shadow
[liuqing@liuqing ~]$ ll /bin/cat
-rwxr-xr-x. 1 root root 54080 8月 ?20 14:25 /bin/cat
[liuqing@liuqing ~]$ cat /etc/shadow
cat: /etc/shadow: 權(quán)限不夠
二、 SGID實(shí)驗(yàn)
系統(tǒng)上有兩個(gè)用戶(hù),gentoo和fedora,它們的附加組為mygrp,現(xiàn)在對(duì)/test目錄進(jìn)行SGID置位,當(dāng)我們使用這兩個(gè)用戶(hù)在/test目錄下創(chuàng)建文件時(shí),文件的屬組會(huì)自動(dòng)變成mygrp。
#查看gentoo和fedora是否存在
[root@liuqing test]# id gentoo
uid=4007(gentoo) gid=4007(gentoo) 組=4007(gentoo),5000(magedu)
[root@liuqing test]# id fedora
uid=4008(fedora) gid=4008(fedora) 組=4008(fedora),5000(magedu)
# 創(chuàng)建組mygrp
[root@liuqing test]# groupadd mygrp
# 將用戶(hù)gentoo和fedora添加附加組mygrp
[root@liuqing test]# usermod -a -G mygrp gentoo
[root@liuqing test]# usermod -a -G mygrp fedora
[root@liuqing test]# id gentoo
uid=4007(gentoo) gid=4007(gentoo) 組=4007(gentoo),5000(magedu),5003(mygrp)
[root@liuqing test]# id fedora
uid=4008(fedora) gid=4008(fedora) 組=4008(fedora),5000(magedu),5003(mygrp)
# 修改/test的屬組為mygrp,修改屬組權(quán)限為rwx,對(duì)/test進(jìn)行SGID置位
[root@liuqing /]# chown :mygrp /test
[root@liuqing /]# chmod g+w /test
[root@liuqing /]# chmod g+s /test
[root@liuqing /]# ls -ld ?/test
drwxrwsr-x. 2 root mygrp 34 11月 21 17:23 /test
# 切換用戶(hù)到gentoo
[root@liuqing /]# su - gentoo
上一次登錄:四 11月 21 17:22:21 CST 2019pts/0 上
[gentoo@liuqing ~]$
# gentoo用戶(hù)在/test目錄下創(chuàng)建了gentoo.txt文件,查看文件屬性,該文件屬組為mygrp
[gentoo@liuqing ~]$ touch /test/gentoo.txt
[gentoo@liuqing ~]$ ll /test
總用量 60
-rw-rw-r--. 1 gentoo mygrp ? ? 0 11月 21 17:25 gentoo.txt
三、 SBIT實(shí)驗(yàn)
/test目錄的屬組是mygrp,對(duì)這個(gè)目錄,進(jìn)行了SGID置位,mygrp組對(duì)目錄有rwx權(quán)限。那么這個(gè)目錄下,附加組是mygrp的用戶(hù)在目錄中創(chuàng)建的文件的屬組是mygrp,這時(shí),附加組是mygrp的這些用戶(hù)可以在目錄中創(chuàng)建、修改刪除文件,而這樣的話(huà),這些用戶(hù)也可以刪除別的用戶(hù)創(chuàng)建的文件,為了不讓別人刪除某用戶(hù)創(chuàng)建的文件,則可以對(duì)目錄進(jìn)行stick,stick之后,只有用戶(hù)自己和管理員可以刪除該目錄下該用戶(hù)自己創(chuàng)建的文件。
# 對(duì)目錄進(jìn)行stick置位,查看權(quán)限,發(fā)現(xiàn)在o的權(quán)限位,有一個(gè)t
[root@liuqing test]# chmod o+t /test
[root@liuqing test]# ls -ld /test
drwxrwsr-t. 2 root mygrp 52 11月 21 17:25 /test
#切換到fedora用戶(hù),創(chuàng)建一個(gè)fedora.txt
[root@liuqing test]# su ?- fedora
[fedora@liuqing ~]$ touch /test/fedora.txt
[fedora@liuqing ~]$ echo "How are you?" ?>> /test/fedora.txt
#查看目錄下的文件,對(duì)于gentoo.txt ,它的權(quán)限是屬組有rw。
[fedora@liuqing ~]$ ll /test
-rwsr-xr-x. 1 root ? root ?54080 11月 21 17:04 cat
-rw-rw-r--. 1 fedora mygrp ? ?13 11月 22 08:45 fedora.txt
-rw-rw-r--. 1 gentoo mygrp ? ? 0 11月 21 17:25 gentoo.txt
#fedora用戶(hù)可以編輯gentoo.txt這個(gè)文件
[fedora@liuqing ~]$ echo ?"New line" ?>> /test/gentoo.txt
[fedora@liuqing ~]$
[fedora@liuqing ~]$
[fedora@liuqing ~]$ cat /test/gentoo.txt
New line
#由于進(jìn)行了SBIT置位,fedora用戶(hù)不能刪除gentoo.txt這個(gè)文件,因?yàn)檫@個(gè)文件不是fedora創(chuàng)建的。
[fedora@liuqing ~]$ rm /test/gentoo.txt
rm: 無(wú)法刪除"/test/gentoo.txt": 不允許的操作
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。