歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux檔案和目錄管理的一道例題

Linux檔案和目錄管理的一道例題

日期:2017/2/28 16:05:40   编辑:Linux教程

假設系統中有兩個賬號,分別是 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

xxxxxxxxx ----123.txt的內容

nano 123.txt -----使用編輯器編輯123.txt,此時你會發現,當你想要保存的時候,系統提示你“不允許”

(3)使用SGID 權限

chmod g+s /srv/ahome 使用root用戶修改目錄/srv/ahome的權限,使之具有SGID權限。

換arod用戶登錄,使用nano編輯器修改內容試一下:

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用戶就可以修改內容了,不信可以試一下哦。

Copyright © Linux教程網 All Rights Reserved