Linux許可權詳解
- 2020 年 3 月 8 日
- 筆記
前面說完了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許可權是可以利用來進行提權的。
對於許可權就先說這麼多,等之後具體碰到了再說。
推薦閱讀