實驗環境:Ubuntu18.04 遠程伺服器 + WSL 2 本機
測評說明#
[版本一]
[版本二]
-
⭐考察對文件權限【尤其是文件特殊權限】的理解
-
理解了以上,實現上述功能就游刃有餘了
最終效果#
-
其他用戶無法進入 Project 目錄
-
TestUser1 創建了文件 u1.txt
-
TestUser2 仍可以編輯 u1.txt,但無法刪除它
-
- 反之同理
實現過程#
準備工作#
- 新建一個用戶組 TestGroup,使用 groupadd 命令,有一些選項可查看 man 手冊
groupadd TestGroup
- 新建兩個屬於 TestGroup 組的用戶 TestUser1、TestUser2
useradd -G TestGroup TestUser1
useradd -G TestGroup TestUser2
-
- 需要先有組
- 設置密碼,用來登錄用戶,否則登不了
passwd TestUser1
--->輸入密碼:xxx
passwd TestUser2
--->輸入密碼:yyy
- 在 /opt 目錄下新建 Project 目錄,作為項目目錄
cd /opt
mkdir Project
實現功能 1 進入權限#
【只能 TestUser1、TestUser2、 root 三個用戶進入該目錄】
- 把 Project 目錄的所屬組修改為 TestGroup,所屬用戶不動
sudo chown :TestGroup Project
- 將其他用戶的執行權限去除,其他用戶將不能進入目錄
sudo chmod o-x Project
-
效果如下:
實現功能 2 編輯權限#
【TestUser1 創建的文件,TestUser2 可以編輯】
- 首先,給所屬組 TestGroup 添加寫權限,這樣用戶才能在該目錄下創建文件
sudo chmod g+w Project
- 設置 set_gid,這樣用戶進入目錄後的操作會以目錄所屬組的身份進行
sudo chmod g+s Project
[PS] 否則,用戶創建的文件的所屬組屬於與自己同名的組,而不是 TestGroup [從而無法將兩個用戶建立聯繫]
-
權限如下:
實現功能 3 刪除權限#
【TestUser1 和 TestUser2 只能刪除自己創建的文件】
- 設置 sticky bit,這樣在該目錄下,用戶只能刪除自己創建的內容
sudo chmod +t Project
-
權限如下:
[PS] 文件夾顏色都變了,zsh 幹的漂亮
思考點#
- 某場景:進入某目錄的用戶對某文件沒有寫權限,卻可以刪除文件,為什麼?
- 刪除文件的權限:優先取決於用戶對進入的目錄的權限
- 該用戶屬於 TestGroup,有可寫權限
- 參考鳥哥的私房菜 —— 目錄與文件之權限意義—— 權限對目錄的重要性:
- 但是碰見 sticky bit [黏著位],事情又不一樣了
附加#
- 目錄的可執行權限代表進入權限
參考資料#
- 《Linux 入門及使用》筆記匯總 ——3 Linux 基礎知識 ——用戶和組以及文件權限的修改
- 《Linux 入門及使用》筆記匯總 ——8 文件與目錄、AWK——文件的特殊權限
- 鳥哥的私房菜 —— 目錄與文件之權限意義