前面說完了Linux的目錄、開機流程、重定向和文件查找,方便我們對理解Linux功能、反彈shell和敏感文件搜索的原理有了簡單理解,其實在Linux中的各種操作都是十分透明的,理解Linux的各種細節,對Linux滲透是十分重要的,借用大佬的一句話“Linux的對抗比的就是你跟運維誰的水平更高一點”
如果沒有看過前面幾篇文章的小伙伴可以移步《Linux目錄結構及開機流程詳解》、《Linux重定向及反彈shell詳解》、《Linux文件查找命令詳解》
目錄
0x01 用戶和組
0x02 文件權限
0x01 用戶和組
Linux必須要有用戶,即使是一個虛擬的用戶,這個在后面會說到,同時用戶在系統中還擁有一個唯一的標識UID(User Identify)。
有了用戶就對應的會有一個用戶組,用戶組在系統中也同樣擁有一個標識GID(Group Identify)
在Linux中有一個特點,只要有用戶,這個用戶一定會屬於一個用戶組,一個用戶至少需要屬於一個用戶組,在創建用戶的時候沒有用戶組的話,系統默認會讓此用戶屬於與用戶名相同的用戶組,即默認情況下UID與GID相同。
說完這個以后,咱們說一下Linux中的用戶分類,這里就會說明開頭為什么會說Linux必須要有用戶。
在Linux中用戶分為三類
管理員
:UID必須為0,凡是UID為0的都是超級用戶,相當於是古代的皇帝生殺大權在握,可以做到把系統自己都刪掉。
普通用戶
:UID范圍500-65535,是由管理員用戶生成的
虛擬用戶
:UID范圍1-499,系統默認就存在或者安裝軟件的時候生成的,雖然存在但是是不能正常使用的,像后面有nologin的就是不允許登陸的,它的存在僅僅只是為了滿足服務運行的需求,在Linux中服務和程序的運行必須要屬於用戶,所以為了滿足這樣的需求,還是需要有這樣的一個用戶的。
那么這樣的用戶能不能刪除呢,這樣是取決於這個用戶所對應的服務還需不需要,如果連這個服務都不需要了,那么就可以去進行刪除的。
那么我們如何創建一個用戶呢,使用 useradd
命令就可以完成了
那么我們要是想添加一個虛擬用戶又該怎么創建呢
如果需要給剛剛創建的用戶指定密碼話,需要使用 passwd
命令來進行
如果后面不跟用戶名的話,是修改當前用戶密碼的
如果要切換用戶的話使用下列命令來進行切換
su -
這里說一下su
和su -
兩條命令的區別。
su
只是切換了用戶身份,但shell環境仍然是原用戶的shell;而su -
連用戶和shell環境一起切換了
然后接下來說一說添加用戶組
用戶組是可以先存在的,是可以沒有用戶的,但是用戶的存在必須先有用戶組,就好比說,一個人的出生是必須要有父母的,但是有父母並不一定會有你。
使用下列命令就可以創建一個用戶組了
groupadd
然后通過下面這個命令就可以為這個用戶組創建一個用戶
0x02 文件權限
前面說完了用戶和用戶組的權限,然后說一下文件所擁有的權限
我們可以發現第三列和第四列有兩列都是root,它們的含義是不一樣的
第一個root是用戶權限,即用戶或屬主,文件的所有者
第二個root是用戶組,即用戶組或屬組,文件屬於的組
這個可能有點不太清晰,在下面細說權限的時候會詳細來描述
接下來再說文件的權限
前面的這串字符一共有10位,第一位是用來標識它是一個什么文件類型的,他有下列幾種類型
然后就剩下了9位字符,將這9位字符每3位為一組分成三組
第一組表示用戶的權限,即當前文件擁有者的權限
第二組表示用戶組的權限,即當前文件所屬用戶組的權限,也就是屬於這個用戶組中的用戶對這個文件的權限
第三組表示其他用戶組的權限,即第二組的用戶組以外的用戶組對這個文件的權限
也就是下面的這個樣子
分組的說完了然后說一下每一組里面的字符所代表的含義,在上面這個圖中,表示權限的字符有rwx-
四種
r(read)可讀權限,對應數字4
w(write)可寫權限,對應數字2
x(execute)可執行權限,對應數字1
- 沒有任何權限,對應數字0
其實除了這些還有一些特殊的權限:t、T、s、S、x、X、+,這些就先不提了,等之后有用到的話再說,其實對於s權限大家應該都比較熟悉,因為s權限是可以利用來進行提權的。
對於權限就先說這么多,等之后具體碰到了再說。
文章首發公眾號:無心的夢囈(wuxinmengyi)
這是一個記錄紅隊學習、信安筆記,個人成長的公眾號
掃碼關注即可