在上篇博文中,咱們實現了用戶身份驗證,而且能夠爲不一樣的用戶分配相應的訪問權限。下面咱們繼續將問題深刻一下,假設要在Samba服務器中建立一個名爲「gongzi「的共享目錄,專門用於存放公司員工工資等財務報表,要求全部員工都能讀取這個共享目錄,可是隻有財務部的員工可以寫入。服務器
根據上篇博文的內容,要實現這個要求並不難,只需在「write list」列表中加入財務部員工帳戶就能夠了,可是若是財務部員工人數比較多,那咱們能夠將這些帳戶都加入到同一個組裏,而後只需將用戶組加入到「write list」列表中。下面咱們就來實現這個操做。ide
首先建立一個名爲「caiwu」的用戶組:測試
# groupadd caiwu
假設「zhangsan」和「lisi」是財務部的兩個員工帳戶,下面建立用戶帳號並將其加入到caiwu組。ui
# useradd -g caiwu zhangsan
# useradd -g caiwu lisi
# id zhangsan
uid=502(zhangsan) gid=502(caiwu) 組=502(caiwu)rest
而後將他們都設置爲Samba用戶:blog
建立gongzi目錄並將權限開到最大:it
修改配置文件/etc/samba/smb.conf,在文件末尾增長一個[gongzi]小節:class
注意,在write list列表中,在caiwu組的前面加了一個@符號,表示這是一個用戶組,而不是用戶。配置
保存退出後,重啓服務:service
# service smb restart
而後在客戶端訪問測試,當用smbuser或smbadmin的用戶身份訪問gongzi時,只有讀取權限,而利用caiwu組成員zhangsan或lisi訪問時,則擁有寫入的權限。
注意:在Windows系統中訪問共享時,當成功地利用某個用戶身份訪問共享以後,就會在客戶端與服務器之間創建起了一個共享鏈接,這個鏈接會保持一段時間,在這段時間內,若是再次去訪問這個共享,便會自動利用以前的用戶身份進行訪問,這樣就不利於咱們的測試。在Windows客戶端能夠執行下面的命令將共享鏈接強制斷開,這樣再次訪問共享時便要從新進行身份驗證了。
上個問題解決了以後,咱們繼續將問題深刻,若是公司保密規定比較嚴格,要求共享目錄gongzi只有財務部的員工才能夠訪問,而且只有財務部經理(zhangsan)才擁有寫入權限。
要完成這個要求,就得繼續修改配置文件:
首先將「public = yes」項刪除,由於這項的做用就是容許全部Samba用戶都擁有訪問權限。而後增長「valid users」項,只有在這項後面的用戶或用戶組才擁有訪問共享目錄的權限。同時再將「write list」設爲zhangsan。
設好以後,重啓服務。
在客戶端再次訪問,當用smbuser用戶的身份訪問共享目錄gongzi時,會出現對話框要求再次進行身份驗證:
當以財務部員工lisi的身份訪問時,只可以讀取而沒法寫入:
只有zhangsan才擁有讀取+寫入的權限。