搭建Samba服務器是為了實現Linux共享目錄之后,在Windows可以直接訪問該共享目錄。
現在介紹如何在ubuntu 16.04系統中搭建Samba服務。
1、安裝Samba服務
sudo apt install samba
在安裝過程中出現如下錯誤:
錯誤:1 http://mirrors.aliyun.com/ubuntu xenial-updates/main amd64 samba-libs amd64 2:4.3.11+dfsg-0ubuntu0.16.04.7
404 Not Found [IP: 91.189.88.161 80]
.....
.....
E: 有幾個軟件包無法下載,要不運行 apt-get update 或者加上 --fix-missing 的選項再試試?
按照提示執行apt-get update
sudo apt-get update
然后在重新安裝。
2、修改配置文件
sudo vim /etc/samba/smb.conf
ubuntu的Samba配置相對於紅帽的要稍微簡單一點,直接在最后添加共享目錄的屬性就可以了。
不用設置security的值,設置了反而容易出錯。
在文件的末尾直接添加以下內容
[need] # Windows訪問Samba服務器是顯示目錄名,頂格寫 comment = need share # 對該共享目錄的描述,隨便寫 browseable = yes # 共享目錄是否可見,no不可見,yes或不寫默認可見 path = /share # 共享的目錄路勁 create mask = 0777 # 創建文件的默認權限 directory mask = 0777 # 創建目錄的默認權限 valid users = tom # 指定登錄的用戶,該項不寫,則默認對所有人可見 force user = nobody # 指定的用戶可以進行登錄,其他用戶沒有權限登錄,nobody不限制 force group = nogroup # 同上,指定用戶組 public = yes # 是否對所有登錄成功的用戶可見 writable = yes # 寫權限,目錄的權限也要許可 available = yes # 同樣是設置共享目錄是否可見
ubuntu是否需要登錄有valid users這個參數決定,如果該參數不添加,則不需要登錄。
添加該參數並指定用戶,則該用戶需要登錄。
3、重啟Samba服務
sudo /etc/init.d/samba restart
重啟出現錯誤
[....] Restarting nmbd (via systemctl): nmbd.serviceJob for nmbd.service failed because the control process exited with error code. See "systemctl status nmbd.service" and "journalctl -xe" for details. failed!
錯誤原因:
Samba Server 版本為 4.2 或以上不支持 security = share,可將其去掉或改為 security = user,也就是Samba server 4.以上的版本,對於Windows訪問是需要登錄還是直接進行訪問,
將不再是有security=share或者security= user決定,而是由后面的共享文件的屬性決定。所以一般忽略security。
解決辦法:
將security = share刪除
4、創建用戶
sudo adduser tom 正在添加用戶"tom"... 正在添加新組"tom" (1001)... 正在添加新用戶"tom" (1001) 到組"tom"... 創建主目錄"/home/tom"... 正在從"/etc/skel"復制文件... 輸入新的 UNIX 密碼: <-- 用戶登錄密碼,這個跟登錄Samba的密碼沒有任何聯系 重新輸入新的 UNIX 密碼: passwd:已成功更新密碼 正在改變 tom 的用戶信息 請輸入新值,或直接敲回車鍵以使用默認值 全名 []: tom 房間號碼 []: 工作電話 []: 家庭電話 []: 其它 []: 這些信息是否正確? [Y/n] y
5、將用戶添加到Samba服務器列表中
sudo smbpasswd -a tom <-- 該用戶必須存在 New SMB password: <-- 登錄Samba服務的密碼 Retype new SMB password:
如果用戶不存在則會提示以下錯誤:
Failed to add entry for user xxxx
6、訪問
1) valid users = tom 該項沒有
Windows端: 'win' + R 輸入"本機的IP" ,就可直接訪問共享目錄
2) valid users = tom 添加了該項
Windows端: 'win' + R 輸入"本機的IP" 訪問共享目錄時需要登錄
而且只有tom用戶可以登錄,其他用戶就算是在Samba
服務器的列表中,也是登錄失敗的。
成功登錄
3) 增加多用戶登錄
valid users = tom,lily,xxx
創建用戶和添加到Samba服務器列表中參考步驟4和5
那么這時候在這個列表中的用戶都可以登錄成功。