您好,登錄后才能下訂單哦!
在linux中,有一個安全上下文的概念,一個進程(運行的程序)能否訪問某個文件,取決于發起進程的用戶對被操作文件存在什么權限。
A. 如果進程的發起者是該被訪問文件的屬主,則以文件屬主的權限來訪問
B. 否則,如果進程的發起者是屬于該被訪問文件的屬組中的用戶,則以文件屬組的權限來訪問
C. 否則,以其他用戶來訪問此文件
而在這個權限之外,還存在著三種特殊權限
SUID:當對某一個程序文件設置了SUID置位,則該進程(程序)訪問系統上的文件時,以程序的屬主的身份來訪問該文件,而不是執行程序的用戶的權限來訪問文件。
SGID:當某目錄的屬組對目錄有寫權限,并且設置了SGID置位時,屬于屬組的這些用戶在這個目錄下創建文件時,被創建的文件的屬組默認會變成該目錄的屬組,而不是創建文件的用戶的基本組。
SBIT:當對某目錄設置了SBIT置位時,用戶只能刪除自己在該目錄下創建的文件,而不能刪除其他用戶創建的文件,哪怕用戶對目錄存在寫權限。
操作:
1. SUID: ? chmod u+s
2. SGID: ?chmod g+s
3. SBIT: chmod o+t
實驗:
一、 SUID實驗
將/bin/cat復制到/test目錄,將/test/bin程序進行SUID置位。讓一個普通使用該程序來查看/etc/shadow文件。然后再用系統自帶的/bin/cat來查看該文件。
# ?將/bin/cat復制到/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
#對/test/cat文件進行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
#切換到普通用戶liuqing
[root@liuqing test]# su - liuqing
上一次登錄:四 11月 21 16:05:54 CST 2019pts/1 上
[liuqing@liuqing ~]$
#普通用戶liuqing,使用/test/cat可以查看/etc/shadow
[liuqing@liuqing ~]$ /test/cat /etc/shadow
root:$6$gdIxmcOy$JSDVjR0tSdQfVTDrukonWIfRLdDIut63ZYiucsTmj8TPJ0Sq/wZduJhWgSUidlHeW6pmISq.B7Vx4OlGX1P1p1:18185:0:99999:7:::
#普通用戶使用系統自帶的/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: 權限不夠
二、 SGID實驗
系統上有兩個用戶,gentoo和fedora,它們的附加組為mygrp,現在對/test目錄進行SGID置位,當我們使用這兩個用戶在/test目錄下創建文件時,文件的屬組會自動變成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)
# 創建組mygrp
[root@liuqing test]# groupadd mygrp
# 將用戶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,修改屬組權限為rwx,對/test進行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
# 切換用戶到gentoo
[root@liuqing /]# su - gentoo
上一次登錄:四 11月 21 17:22:21 CST 2019pts/0 上
[gentoo@liuqing ~]$
# gentoo用戶在/test目錄下創建了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實驗
/test目錄的屬組是mygrp,對這個目錄,進行了SGID置位,mygrp組對目錄有rwx權限。那么這個目錄下,附加組是mygrp的用戶在目錄中創建的文件的屬組是mygrp,這時,附加組是mygrp的這些用戶可以在目錄中創建、修改刪除文件,而這樣的話,這些用戶也可以刪除別的用戶創建的文件,為了不讓別人刪除某用戶創建的文件,則可以對目錄進行stick,stick之后,只有用戶自己和管理員可以刪除該目錄下該用戶自己創建的文件。
# 對目錄進行stick置位,查看權限,發現在o的權限位,有一個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用戶,創建一個fedora.txt
[root@liuqing test]# su ?- fedora
[fedora@liuqing ~]$ touch /test/fedora.txt
[fedora@liuqing ~]$ echo "How are you?" ?>> /test/fedora.txt
#查看目錄下的文件,對于gentoo.txt ,它的權限是屬組有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用戶可以編輯gentoo.txt這個文件
[fedora@liuqing ~]$ echo ?"New line" ?>> /test/gentoo.txt
[fedora@liuqing ~]$
[fedora@liuqing ~]$
[fedora@liuqing ~]$ cat /test/gentoo.txt
New line
#由于進行了SBIT置位,fedora用戶不能刪除gentoo.txt這個文件,因為這個文件不是fedora創建的。
[fedora@liuqing ~]$ rm /test/gentoo.txt
rm: 無法刪除"/test/gentoo.txt": 不允許的操作
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。