linux中SUID,SGID與SBIT的奇妙用途詳解
前言
linux對文件的權(quán)限管理簡直是讓人嘆為觀止,又回顧了一下SUID,SGID和SBIT的作用,總結(jié)一下。
其實SUID和SGID的作用跟sudo是相似的。當(dāng)用戶A想執(zhí)行一個原本屬于用戶B的可執(zhí)行文件時,若B的文件設(shè)置了suid位,則A在執(zhí)行時是以用戶 B的身份來執(zhí)行。
SUID是Set UID的簡稱,翻譯過來是設(shè)置用戶ID,感覺很別扭,還是覺得SUID最為簡煉。它會出現(xiàn)在文件擁有者權(quán)限的執(zhí)行位上,具有這種權(quán)限的文件會在其執(zhí)行時,使調(diào)用者暫時獲得該文件擁有者的權(quán)限。例如,使用如下命令:
ls -l /usr/bin/passwd
我們會得到如下的結(jié)果:
-rwsr-xr-x 1 root root 42824 Sep 13 2012 /usr/bin/passwd
可以看到,在文件擁有者的執(zhí)行位上出現(xiàn)為s而不是x,所以說passwd這個程序是具有SUID權(quán)限的。我們直到在修改用戶密碼的時候,用的就是passwd這個命令,而我們又知道在linux下面,用戶密碼是存儲在/etc/shadow這個文件里面的。首先查看一下/etc/shadow這個文件的權(quán)限:
ls -l /etc/shadow
返回的結(jié)果如下:
-rw-r----- 1 root shadow 1138 Dec 13 20:00 /etc/shadow
由上面的結(jié)果,我們知道只有root可以往shadow文件中寫入數(shù)據(jù),其他用戶連查看的權(quán)限都沒有。那我們平時是怎么修改密碼呢?沒錯,就是和SUID有關(guān)。當(dāng)我們使用passwd命令時,就獲得了passwd的所有者即root的權(quán)限,進而可以對shadow文件進行寫入操作。
使用SUID肯定滿足一下幾點:
1.SUID只對二進制文件有效
2.調(diào)用者對該文件有執(zhí)行權(quán)
3.在執(zhí)行過程中,調(diào)用者會暫時獲得該文件的所有者權(quán)限
4.該權(quán)限只在程序執(zhí)行的過程中有效
《鳥哥的linux私房菜》中,有一張圖特別能表示這個意思:
SGID即Set GID的縮寫,它出現(xiàn)在文件所屬組權(quán)限的執(zhí)行位上面,它對普通二進制文件和目錄都有效。當(dāng)它作用于普通文件時,和SUID類似,在執(zhí)行該文件時,用戶將獲得該文件所屬組的權(quán)限。當(dāng)SGID作用于目錄時,意義就非常重大了。當(dāng)用戶對某一目錄有寫和執(zhí)行權(quán)限時,該用戶就可以在該目錄下建立文件,如果該目錄用SGID修飾,則該用戶在這個目錄下建立的文件都是屬于這個目錄所屬的組。
SBIT即Sticky Bit,它出現(xiàn)在其他用戶權(quán)限的執(zhí)行位上,它只能用來修飾一個目錄。當(dāng)某一個目錄擁有SBIT權(quán)限時,則任何一個能夠在這個目錄下建立文件的用戶,該用戶在這個目錄下所建立的文件,只有該用戶自己和root可以刪除,其他用戶均不可以。例如:
ls -ld /tmp
可以得到以下結(jié)果:
drwxrwxrwt 12 root root 12288 Dec 17 16:33 /tmp
可以看到最后一位為t,這說明/tmp文件就是這種文件。
那么,如何設(shè)置上面所說的三種權(quán)限呢?首先來介紹一點預(yù)備的知識,用數(shù)字來表示權(quán)限:
4表示SUID
2表示SGID
1表示SBIT
如果兩個或三個權(quán)限同時存在時,就將者寫權(quán)限的值相加就是需要的結(jié)果了。利于SUID和SGID同時存在,則為6。下面可以看一下修改的例子:
chmod 4777 test
使test文件具有SUID權(quán)限,你可能已經(jīng)看明白了,就是在普通文件權(quán)限前面再加上這些特殊權(quán)限值就可以了。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
linux free命令以及系統(tǒng)內(nèi)存占用過高的處理方式
這篇文章主要介紹了linux free命令以及系統(tǒng)內(nèi)存占用過高的處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05開發(fā)環(huán)境Ubuntu16安裝以后的初始化設(shè)置
今天小編就為大家分享一篇關(guān)于開發(fā)環(huán)境ubuntu16安裝以后的初始化設(shè)置,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10centos6.5配置ssh免秘鑰登陸執(zhí)行pssh命令的講解
今天小編就為大家分享一篇關(guān)于centos6.5配置ssh免秘鑰登陸執(zhí)行pssh命令的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-02-02LuManager VPS主機控制面板安裝和Eduvps免費VPS測評
這篇文章主要介紹了LuManager VPS主機控制面板安裝和Eduvps免費VPS測評,需要的朋友可以參考下2016-04-04Ubuntu安裝telent服務(wù)器時出現(xiàn):apt-get:Package has no installation的原因及
這篇文章主要介紹了Ubuntu安裝telent服務(wù)器時出現(xiàn):apt-get:Package has no installation的原因及解決方法的相關(guān)資料,需要的朋友可以參考下2016-11-11