在上篇博文中,咱們利用Samba實現了最簡單的匿名共享,但在大多數狀況下,咱們都但願可以對訪問共享文件的用戶進行身份驗證,並分配相應的權限。服務器
下面咱們就在以前配置好的共享目錄/home/share的基礎之上,進行進一步的設置,使之須要進行身份驗證才能訪問。ide
要進行身份驗證,首先須要肯定驗證時所使用的用戶和密碼。爲了區別於Linux系統用戶,一般將用於訪問Samba共享的用戶稱爲Samba用戶。Samba用戶必須依賴於系統用戶,即要建立一個Samba用戶,首先必須保證要有相應的系統用戶存在,可是Samba用戶的密碼能夠與系統用戶的密碼不相同。測試
下面咱們先建立一個名爲smbuser的系統用戶,而後再將其設置爲Samba用戶。blog
[root@localhost ~]# useradd smbuser
注意,因爲建立這個系統用戶的目的就是爲了將其設置成Samba用戶,因此強烈建議不要用passwd命令爲其設置系統用戶密碼,以防止利用該用戶登陸系統。也就是說,這個用戶只能用來訪問共享,而沒法登陸系統。
接下來再將smbuser設置爲Samba用戶,這裏就要用到smbpasswd命令。這個命令的做用就是對Samba用戶進行管理,smbpasswd命令的主要選項:
-h:顯示smbpasswd命令的幫助信息
-a:添加指定的Samba用戶賬號
-d:禁用指定的用戶賬號
-e:啓用指定的用戶賬號
-x:刪除指定的用戶賬號
不使用任何命令選項時能夠用於修改Samba用戶的密碼it
這其中最經常使用的是-a選項,用於添加Samba用戶,在添加的同時,還要爲用戶設置Samba密碼:table
Samba用戶建立好了以後,接下來還要修改配置文件/etc/samba/smb.conf。class
這裏只須要將【global】全局設置中的「security = share」改成「security = user」,即啓用用戶身份驗證。
登錄
重啓服務以後,在客戶端再次訪問就須要輸入用戶名和密碼了。基礎
用戶成功登陸以後,除了能看到設置好的共享目錄share以外,還能看到本身的主目錄,這就是配置文件中默認的[homes]項所起到的做用。bfc
smbuser對本身的主目錄具備寫入權限,咱們繼續設置,讓他對share目錄也具備寫入權限。
在Samba服務器上繼續修改配置文件,在[share]小節中增長一項「writable = yes」,表示容許寫入:
保存退出後,重啓服務。而後到客戶端測試,但很遺憾地發現,用戶仍是沒法寫入。
這時由於咱們同時還必需要確保系統用戶smbuser對共享目錄/home/share/也要具備寫入權限。咱們先來看一下這個目錄的默認權限:
默認狀況下,只有root用戶纔對其具備寫入權限。爲了確保全部的Samba用戶都能對其寫入,咱們將目錄的權限開到最大:
這樣在客戶端再次測試,就可以成功寫入了。
下面考慮這樣一個問題:若是在Samba服務器中再添加一個名爲smbadmin的Samba用戶,而後在客戶端用這個新添加的smbadmin用戶訪問共享,是否也可以寫入呢?
答案是確定的,由於咱們在服務器中設置的是「writable = yes」,這樣全部的Samba用戶都將具備寫入權限。
若是但願對用戶的權限進行區別設置,使smbuser用戶只有讀取權限,而smbadmin用戶具備寫入權限,這就須要對配置文件中的[share]小節作進一步的修改。
「writable = yes」表示全部用戶都有寫入權限,「write list」則指定了一個具備寫入權限的用戶列表,若是須要設置多個用戶具備寫入權限,則用戶之間用逗號間隔。