實際上Linux有12位權限,咱們前面說的Linux權限都只說了經常使用的9位權限,剩下的特殊權限也常常被用來進行Linux提權,若是沒有了解了的,能夠移步以前的文章《Linux權限詳解》、《Linux安全權限》shell
0x01 介紹安全
0x02 特殊權限詳解學習
Linux一共有12位權限,除過以前說的rwxrwxrwx
的9位權限,還有3位的特殊權限ui
suid位
:setuid,用S表示,若是用戶位對應的x位上有x時使用s表示,對應數字爲4,與用戶相關的權限3d
sgid位
:setgid,用S表示,若是用戶組對應的x位上有x時使用s表示,對應數字爲2,與用戶組相關的權限code
sticky位
,粘滯位,用T表示,若是其餘用戶組對應的x位上有x時使用t表示,對應數字爲1,與其餘用戶組相關的權限blog
粘滯位有一個特殊的目錄就是tmp目錄繼承
suidfile
suid是讓普通用戶能夠以root或其餘的用戶角色運行只有root或其餘帳號才能運行的命令或程序,或程序命令對應原本沒有權限操做的文件等,suid爲某一個命令設置特殊權限,使用者爲全部人
。搜索
這裏用一個例子來講明這個問題
先添加一個新的用戶,併爲其設置密碼
咱們再明確一下更改密碼的話shadow文件是否會更改
說明shadow文件確實被更改了,那shadow的權限又是怎樣的
會發現只有root用戶擁有寫權限,那是否是意味着其餘用戶不能更改密碼
事實並非這樣的,其餘用戶也是能夠修改密碼的,這就是由於這個文件的特殊權限的緣由,能夠發現它是擁有suid權限的,因此任何用戶執行這個命令都會擁有和這個命令所對應的權限,用這個例子來講就是任何用戶執行這個命令就擁有了root的權限
咱們再用一個刪除操做來看一下
咱們來看一下默認狀況下的刪除操做
若是咱們給刪除命令增長suid權限又會發生什麼狀況
能夠發現添加了suid權限,使用低權限用戶就能夠刪除root用戶才能操做的文件
到這裏基本就能夠理解清楚suid的用法了,可是還有幾點須要注意一下的
suid僅對二進制命令程序有效,不能做用在shell等腳本文件上,並且suid權限僅在命令執行過程當中有效
咱們能夠搜索一下哪些文件時有s權限的
find /bin -type f -perm 4755 -exec ls -l {} \;
等後面在使用suid進行提權的時候咱們還會再次提到這個東西
若是對這個find命令不太懂的能夠移步《Linux文件查找命令詳解》
sgid
sgid是與用戶組相關的,sgid與suid不一樣的是,sgid既能夠針對文件也能夠針對目錄
對於文件來講,sgid僅對二進制命令程序有效,執行命令的用戶能夠得到該程序執行期間所屬組的權限,suid是擁有這個用戶的權限
對於目錄來講(繼承目錄所屬的組),Linux默認狀況下用戶建立文件,默認用戶和組都是它本身,sgid可讓用戶在此目錄下建立的文件和目錄,具備與此目錄相同的用戶組設置
這裏就再也不舉例子來講明瞭,跟suid所驗證的方式是同樣的
粘滯位
粘滯位就是你能夠往裏面放內容可是卻不能對這個文件進行操做
文章首發公衆號:無意的夢囈(wuxinmengyi)
這是一個記錄紅隊學習、信安筆記,我的成長的公衆號
掃碼關注便可