環境說明
本文件夾共文的場景是虛擬機運行CentOS,本機是Windows,現欲把CentOS上的一個享出來,Win的機器可以讀寫。
Samba與window連接需要使用NetBIOS協議,請確認你的Win7系統已經安裝了NetBIOS協議。
組成Samba運行的有兩個服務:
SMB服務:
-
Samba 的核心啟動服務,主要負責建立 Linux Samba服務器與Samba客戶機之間的對話;
-
提供對文件和用戶身份驗證並打印系統的訪問;
-
只有SMB服務啟動,才能實現文件的共享;
-
監聽139 TCP端口;
NMB服務:
-
負責解析用的,類似與DNS實現的功能;
-
NMB可以把Linux系統共享的工作組名稱與其IP對應起來;
-
如果NMB服務沒有啟動,就只能通過IP來訪問共享文件;
-
監聽137和138 UDP端口。
安裝samba
配置這些東西你需要先擁有root權限
首先關閉防火牆
service iptables stop
另外關閉SELINUX的強制模式
setenforce 0
查看已經按照samba rpm包
rpm -qa | grep samba
通常為了保持環境純凈,都是先現在原來的安裝包
卸載samba
rpm -e --nodeps xxx
yum安裝samba
yum install samba samba-client samba-swat
配置samba
Samba服務器安裝完畢,會生成配置文件目錄/etc/samba和其它一些samba可執行命令工具,
/etc/samba/smb.conf是samba的核心配置文件,
/etc/init.d/smb是samba的啟動/關閉文件
下面我們來配置Samba服務,有一些注意事項我會強調,請大家注意:
先定位到/etc/samba目錄下,
把smb.conf備份一下: shell cp smb.conf smb.conf.bak
現在我要把/share目錄共享給我的win7機器,打開samba配置文件,
shell vi /etc/samba/smb.conf
用shift+g定位到最后一行,可以看到:
修改如下:
[myshare] comment = this is my share path = /home/liuguanghai/ valid user = liuguanghai read only = no writeable = yes browseable = yes available = yes printable = no write list = +staff
好了,保存退出:wq!
創建共享文件夾:
創建/share目錄mkdir /share,並且設置chown -R [用戶組]:[用戶]
好了,重啟samba服務吧!
本來應該是service smb restart和service nmb restart, 但是我曾經試過用這樣的方式不行,而使用/etc/init.d/smb restart和/etc/init.d/nmb restart就可以。 以防萬一,使用后者的方法。
在win7的機器運行//192.168.0.100就能看到samba共享的public文件夾(也就是對應的/share文件夾)——可讀可寫哦。
如果出現沒有權限的問題,請再次確認以下幾個重點:
1.關閉防火牆: service iptables stop
2.設置SELinux的寬松模式:setenforce 0
3.設置你需要共享的文件夾的屬性為777,chmod 777 /share
4.重啟了smb和nmb服務。
設置samba用戶名密碼:
在本地檢測是否分享成功:
輸入命令:smbclient -L \\127.0.0.1 -U xxx
1、出現類似如下結果證明成功:
2、如何出現如下字樣:
samba服務器出現“session setup failed:
NT_STATUS_LOGON_FAILURE”的解決辦法:
$ smbclient -L \\127.0.0.1 -U test Enter berbiey's password: session setup failed: NT_STATUS_LOGON_FAILURE
test是centos 中的一個普通用戶,啟動smb服務后,在本機上測試,就出現了上面的錯誤。
這是由於test 僅僅是系統用戶,而沒有將它加入到samba賬戶中來,
換言之, 用來登錄samba服務器的賬戶,首先是一個 系統賬戶, 同時還應是samba賬戶。
找到了問題的症結 所在,解 決就簡單了。 方法如下:
smbpasswd -a test #在samba服務器中添加一個用戶名是test用戶 輸入密碼:
如果出現win10登陸samb用戶名密碼都正確,還提示“用戶名密碼錯誤
”
查看如下:
1.win10系統運行secpol.msc 打開本地安全策略
2.安全策略->本地策略->安全選項
3.右側找到“網絡安全:LAN管理器身份驗證級別”打開,選擇“僅發送NTLMv2響應,拒絕LM和NTLM”點確定。
4.本路徑下再找到“網絡訪問:本地賬戶的共享和安全模型”打開,選擇“僅來賓”
重啟服務
以上配置完成后要重啟samba服務才能生效,重啟命令如下:
systemctl restart smb.service systemctl restart nmb.service systemctl enable smb.service systemctl enable nmb.service systemctl status smb #臨時關閉 systemctl stop firewalld #禁止開機啟動 systemctl disable firewalld Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.