對samba服務複雜權限配置小記

看了一個比賽的題目,感受也挺有意思的,比日常配置的權限稍微有點不一樣,而且稍微有點複雜。咱們慢慢來看一看:
• 題目:建立samba共享/share/archive目錄,要求:
• 共享名爲archive;
• 一、zhangsan,lisi,wangwu用戶都能經過輸入用戶名和密碼(Skills39)登陸並上傳文件;
• 二、zhangsan可以查看和刪除全部人的文件;
• 三、lisi可以查看全部人的文件,但不能刪除別人的文件;
• 四、wangwu只能查看和刪除本身的文件,不能查看和刪除別人的文件;
• 五、其餘人不能訪問共享目錄。安全

安裝服務什麼的就不在說了,相信大家應該都很是熟練了。ide

1、建立共享目錄
首先建立共享目錄並將目錄設置到最大權限
mkdir -p /share/archive
chmod 777 /share/archive
對samba服務複雜權限配置小記
注意:這裏雖然將目錄的權限設置到最大,可是咱們能夠經過修改配置文件權限來限制用戶對這個目錄的權限。例如某smb用戶對目錄有寫入的權限,可是配置文件中這個用戶沒有可寫的權限,這個用戶仍是不能寫。
咱們能夠來測試一下,驗證zhangsna用戶是否有寫入的權限
對samba服務複雜權限配置小記
在配置文件中讓zhangsna用戶不可寫。
在客戶端驗證
對samba服務複雜權限配置小記
Zhangsna用戶寫入文件失敗
因此我認爲只有當配置文件和目錄都有寫入的權限的時候,用戶纔有權限寫入,缺一不可。
2、迴歸正題,根據題目要求修改服務配置文件。
一、Vim /etc/samba/smb.conf
在文件的最後添加如下幾行:
對samba服務複雜權限配置小記
具體說明解釋:
(1)Comment=archive共享文件的一個說明,有沒有沒有關係
(2)Path=/share/archive指定共享目錄的路徑,必須正確無誤
(3)Valid users=zhangsan,lisi,wangwu指定能夠用密碼登錄的用戶,
(4)writable=yes.保證三個用戶擁有上傳的權限測試

到這裏的配置咱們經過配置(3)已經知足一、6的限制條件:指定zhangsan,lisi,wangwu用戶能夠密碼登錄,並拒絕其餘這能夠訪問。
張三登錄成功:
對samba服務複雜權限配置小記
Lisi登錄成功
對samba服務複雜權限配置小記
Wangwu登錄成功
對samba服務複雜權限配置小記
Maliu登錄失敗,拒絕訪問:
對samba服務複雜權限配置小記3d

3、而後分析2,3,4的題目要求:
一、第二個條件:zhangsan可以查看和刪除全部人的文件;
從這條限制能夠看出,zhangsan用戶對着個共享目錄有着絕對的權限。因此咱們要將共享目錄的全部者給zhangsan
Chown zhangsan /share/archive
對samba服務複雜權限配置小記
二、而後驗證張三用戶可否查看和刪除全部人的文件。
首先,使用lisi,wangwu用戶分別上傳文件b.txt,c.txt。
對samba服務複雜權限配置小記
而後,客戶端登錄zhangsan用戶,去查看這兩個文件並刪除
對samba服務複雜權限配置小記
成功查看文件內容並刪除文件。code

• lisi可以查看全部人的文件,但不能刪除別人的文件;
• wangwu只能查看和刪除本身的文件,不能查看和刪除別人的文件;blog

三、這兩條還要求lisi,wangwu用戶沒有刪除別人上傳的文件的權限,只能刪除本身的文件。因此達到這個目的咱們可使用sbit權限it

Sbit權限:SBIT(Sticky Bit)目前只針對目錄有效,對於目錄的做用是:當用戶在該目錄下創建文件或目錄時,僅有本身與 root纔有權力刪除。也就是說文件是誰的誰就是老大,其餘人只能靠邊看着。

(1)設置sbit:
Chmod +t /share/archive
對samba服務複雜權限配置小記
當設置好sbit的時候,在用戶權限顯示裏面的最後,出現t。
(2)客戶端驗證用戶只能刪除本身的文件,不能刪除別人的文件。
對samba服務複雜權限配置小記
a.txt,b.txt,c.txt分別對應zhangsan,lisi,wangwu用戶上傳的文件。能夠看到lisi用戶只能對本身的文件隨心所欲,對別人的文件卻不能怎樣。再看wangwu也是一樣如此:
對samba服務複雜權限配置小記
四、再看題目條件,lisi擁有讀全部人的權限,而wangwu只能讀本身的。這又該怎麼辦呢。這個地方我思來想去,用了很長時間。忽然我看到配置文件中其餘的共享目錄中擁有這樣的一行配置create mask=。這是給用戶建立文件的時候,默認將文件的權限改成create mask等於的值。
(1)若是沒有這一行,用戶上傳的文件是什麼權限,咱們看一下:
對samba服務複雜權限配置小記
能夠看到,在other上面的權限有能夠讀的權限,因此,當每一個用戶上傳完文件的時候,其餘用戶均可以讀。
因此咱們能夠經過create mask=的值來限制用戶讀取的權限,這樣不就杜絕了wangwu用戶讀其餘人的文件table

(2)修改配置文件,添加create mask=0740
對samba服務複雜權限配置小記class

create mask=0740,表示文件全部者用戶讀寫執行的權限,用戶組有讀的權限,其餘用戶沒有任何權限。可是這裏出於安全考慮最好不要給執行權限,可設爲0640
(3)咱們從新經過這些用戶上傳文件,並查看上傳後的文件權限
對samba服務複雜權限配置小記
(4)驗證wangwu只能查看本身的文件:
對samba服務複雜權限配置小記
(5)可是當咱們這樣設置之後,lisi,zhangsan還有讀取全部人文件的權限嗎?:
對samba服務複雜權限配置小記
很顯然不能讀取別人的權限,由於lisi,zhangsan分別對於另外兩人是個外人。那麼爲了知足要求,咱們又如何讓他能夠讀取全部人的文件。登錄

既然是外人,咱們就讓lisi分別成爲zhangsan,wangwu的親人,讓zhangsan成爲lisi,wangwu的親人。
咱們知道每一個文件的所屬組是有讀的權限的。
對samba服務複雜權限配置小記
因此將zhangsan,lisi分別加入到他們的親人組中。這樣lisi能夠讀取zhangsan,wangwu的文件,zhansan能夠讀取lisiwangwu的文件

(6)因此咱們能夠將lisi分別加入到zhangsan組合wangwu組。
Gpasswd -a lisi zhangsan
Gpasswd -a lisi wangwu
對samba服務複雜權限配置小記
分別將zhangsan添加到lisi,wangwu組中
對samba服務複雜權限配置小記
(7)這時候咱們再來驗證zhangsan,lisi 是否擁有讀取全部文件的權限

對samba服務複雜權限配置小記
對samba服務複雜權限配置小記
成功讀取。

綜合驗證:
一、全部人擁有上傳權限
對samba服務複雜權限配置小記
二、 zhangsna能查看和刪除全部人的權限
對samba服務複雜權限配置小記
對samba服務複雜權限配置小記
三、驗證lisi能查看別人文件,不能刪除別人文件
對samba服務複雜權限配置小記
四、驗證wagnwu只能看本身的和刪除本身的

對samba服務複雜權限配置小記

總結:爲了知足要求,也就幾條關鍵的權限設置,分別是:(1)目錄全部者要是zhangsan;(2)設置目錄權限SBIT(3)配置文件添加create mask=0740;(4)將zhangsan加入到lisi,wangwu用戶組中(5)將lisi加入到zhangsan,wangwu用戶組中

相關文章
相關標籤/搜索