Bo2SS

Bo2SS

文件特殊權限的常用場景

實驗環境: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 幹的漂亮


思考點#

  • 某場景:進入某目錄的用戶對某文件沒有寫權限,卻可以刪除文件,為什麼?

附加#

  • 目錄的可執行權限代表進入權限

參考資料#

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。