假設系統中有兩個賬號,分別是 alex 和 arod ,這兩個人除了自己群組之外還共同支援乙個名為 project 的群組。假設這兩個使用者需要共同擁有 /srv/ahome/ 目錄的開發權,而該目錄禁止其他人進入查閱。 請問該目錄的許可權設定應為何?請先以傳統許可權說明,再以 sgid 的功能解析。
目標:了解到為何專案開發時,目錄最好需要設定 sgid 的許可權!
前提:多個賬號支援同一群組,且共同擁有目錄的使用權!
需求:需要使用 root 的身份來進行 chmod, chgrp 等幫使用者設定好他們的開發環境才行! 這也是管理員的重要任務之一
(1)準備工作。
groupadd project --------建立群組project
useradd -g project alex --------建立使用者alex,並且此使用者支援群組project
useradd -g project arod --------建立使用者arod,並且此使用者支援群組project
id alex ----檢視alex的賬戶屬性
id alex ----檢視alex的賬戶屬性
mkdir /srv/ahome ---- 建立工作目錄
(2)使用傳統許可權。
chmod 770 /srv/ahome -----該目錄禁止其他人進入查閱,而同組的人卻可以互相修改檔案,所以修改許可權為770
chgrp project /srv/ahome -----將/srv/ahome目錄的支援群組修改為project
此時工作目錄的許可權已經設好,支援群組也設定為project了,是不是已經可以了呢?
我們試一下看:
使用alex使用者登入tty2
cd /srv/ahome ---- 進入工作目錄
touch 123.txt -----建立檔案123.txt
ls -l 123.txt -----檢視123.txt的檔案屬性
-rw-rw-r-- 1 alex alex 0 sep 29 22:46 123.txt 我們發現alex建立的檔案本身所屬的群組為alex。但對於arod來講,他並不支援alex這個群組,所以arod對應此檔案就是other,不過other有r許可權,所以理論上arod是可以檢視檔案內容的。我們下邊驗證一下。
使用arod使用者登入tty3
cd /srv/ahome ---- 進入工作目錄
cat -n 123.txt
********* ----123.txt的內容
nano 123.txt -----使用編輯器編輯123.txt,此時你會發現,當你想要儲存的時候,系統提示你「不允許」
(3)使用sgid 許可權
chmod g+s /srv/ahome 使用root使用者修改目錄/srv/ahome的許可權,使之具有sgid許可權。
nano 123.txt -------???什麼?還是不行?
呵呵,當然不行了。。。。因為你的檔案的支援群組並沒有改變啊。
切換root
rm 123.txt
再使用alex使用者登入,
touch 123.txt -----建立檔案123.txt
ls -l 123.txt -----檢視123.txt的檔案屬性
-rw-rw-r-- 1 alex project 0 sep 29 22:48 123.txt ----可以發現123.txt這樣檔案已經歸屬於project群組了。
此時再使用arod使用者就可以修改內容了,不信可以試一下哦。
linux的檔案和目錄管理
本文章內容有限每個命令只介紹簡單基礎的 肯定會有很多其他的不同用法 還需要你去看 或者直接 h 就可以看他的引數介紹 不會英文就翻譯下 簡單方便的方法 首先了解系統的預設目錄 bin 常見的使用者指令 開啟 bin檔案下面的執行程式都是我們操作的系統指令 boot 核心和啟動檔案 dev 裝置檔案 ...
linux檔案和目錄管理
cd 相對路徑 絕對路徑 用途 變更當前目錄,cd是change directory的縮寫 例 cd 回到上層目錄 cd home 相對路徑的寫法 cd var www html絕對路徑的寫法 cd 回到使用者的根目錄 cd 回到使用者的根目錄 cd loki 回到使用者loki的根目錄 pwd 用...
linux管理檔案和目錄
linux基本命令 1.linux命令列的一般格式中包括 命令字 選項 引數。2.通過如下方式可以獲得命令幫助的方式 help.man.info命令和 help命令選項。3.使用pwd 檢視當前目錄 du 統計檔案及目錄的空間占用情況 cd 切換目錄 ls 顯示目錄內容 mkdir 建立新目錄 等命...