Samba是著名的開源軟件項目之一,它在Linux/unix系統中實現了微軟的SMB/CIFS網絡協議,從而使得跨平臺的文件共享變得更加容易。在部署windows、Linux/unix混合平臺的企業環境時,選用Samba能夠很好的解決不一樣系統之間的文件互訪問題。 html
1.Samba使用NetBIOS通信協議,就像NFS是架構在RPC Server上面同樣,Samba是架構在NetBIOS(Network Basic Input/Output System)這個通信協議上面所開發出來的。linux
2.NetBIOS機器間的溝通:ios
取得對方主機的NetBIOS name定位該主機所在,利用對方給予的權限存取可用資源。web
3.Samba使用nmbd、smbd這兩個服務來控制定位主機和權限分配:數據庫
nmbd:用來管理工做組、NetBIOS name等的解析。主要利用UDP協議開啓137 138端口來負責名稱解析的任務。ubuntu
smbd:這個daemon主要用來管理Samba主機分享的目錄,檔案與打印機。主要利用TCP協議傳輸數據,開放端口爲139.windows
注意 : centos
Samba服務的默認安全級別爲user,要求提供用戶驗證。對於匿名共享服務,通常將安全級別設爲share。安全
使用pdbedit工具能夠建立、刪除Samba共享用戶。服務器
經過smbusers文件能夠爲共享用戶帳號設置別名。
使用smbclient工具能夠查詢並登陸、訪問共享資源,而使用mount命令能夠將共享文件夾掛載到本地。
SAMBA 服務器四種共享方式 : share、user、server、domain
amba 服務器的配置文件是 : smb.conf
更改和添加SAMBA服務器登錄用戶的密碼命令 : 修改smb服務器口令使用smbpasswd
Samba 服務器的進程由 smbd 和nmbd 兩部分組成。
4.兩種聯機模式:
peer/peer:局域網內各PC機之間獨立運行,適用於小型網絡。
Domain model:局域網內各PC機統一經過PDC主機認證(LDAP),以獲取適當的權限,適用於大中型網絡。
5.Samba的主要配置文件(/etc/samba):
smb.conf:最主要的配置文件,分爲[global]和[Share Definitions]兩個部分。
Imhost:對應NetBIOS Name與該主機的IP,通常Samba在啓動時就能捕捉到LAN中相關計算機NetBIOS Name對應的IP,所以,這個配置文件通常不用設置。
Smbpasswd:這個文件默認不在,它是Samba預設的使用者密碼對應表。
六、安裝須要的升級包
samba 服務端軟件
samba-client 客戶端軟件
samba-common 提供服務端和客戶端的公共組件
System-config-samba samba 的圖形界面軟件包
Samba-swat samba的web界面管理軟件包
七、Samba服務相關進程及端口號
/usr/sbin/smbd 爲客戶機提供服務器中的共享資源的訪問
/usr/sbin/nmbd 提供基於 NetBIOS 協議的主機名稱解析
Samba的腳本 /etc/init.d/smb
Samba的端口:
Nmbd:(137138)NetBIOS 協議
smbd:139(SMB 協議) 445(CIFS 協議)
八、
主配置文件smb.conf
Samba服務的配置文件位於/etc/samba目錄中,其中smb.conf是主配置文件。在smb.conf文件中,以「#」號開始的行表示註釋性的文字,以「;」開始的行表示是配置樣例。
在配置共享文件夾時,用戶能夠參考文件中提供的樣例行進行設置。刪除註釋行,樣例行及空行之外的內容,纔是samba服務器的有效配置。
[global]全局配置:這部分配置項的內容對整個samba服務器都有效。
[homes]宿主目錄共享設置:設置Linux用戶的默認共享,對應用戶的宿主目錄。當用戶訪問服務器中與本身用戶名同名的共享目錄時,經過驗證後將會自動映射到該用戶的宿主文件夾中。
[printers]打印機共享設置:若是須要共享打印機設備,能夠在這部分進行設置。若須要在smb.conf文件中設置新的共享文件夾,只須要增長一段如「[myshare]」開始的共享設置便可,其中「myshare」爲用戶自定義的共享名。新的共享文件夾設置能夠參考「[homes]」和「[printers]」部分的內容。
9.安裝Samba:
查看Samba服務是否安裝:
rpm -qa | grep samba
yum安裝:yum install -y samba
查看包的安裝狀況:
samba-winbind-clients-3.6.23-46el6_9.i686 #客戶端軟件,主要提供linux主機做爲客戶端時,所須要的工具指令集
samba-winbind-3.6.23-46el6_9.i686 # windows域成員的一箇中介。它能夠把windows域賬號裏的用戶和組信息,映射成liunx的用戶組。
samba-common-3.6.23-46el6_9.i686 #主要提供samba服務器的設置文件與設置文件語法檢驗程序testparm
samba-3.6.23-46el6_9.i686 #服務器端軟件,主要提供samba服務器的守護程序,共享文檔,日誌的輪替,開機默認選項Samba服務器安裝完畢,會生成配置文件目錄/etc/samba和其它一些samba可執行命令工具,/etc/samba/smb.conf是samba的核心配置文件,/etc/init.d/smb是samba的啓動/關閉文件。
啓動Samba服務器&設置開機啓動:
配置Samba服務:
Samba主配置文件爲/etc/samba/smb.conf
由Global Setting 和 Share Definitions構成。
全局參數:
[global]
security = user #這裏指定samba的安全等級。關於安全等級有四種:
share:用戶不須要帳戶及密碼便可登陸samba服務器
user:由提供服務的samba服務器負責檢查帳戶及密碼(默認)
server:檢查帳戶及密碼的工做由另外一臺windows或samba服務器負責
domain:指定windows域控制服務器來驗證用戶的帳戶及密碼。
smbpasswd:該方式是使用smb工具smbpasswd給系統用戶(真實用戶或者虛擬用戶)設置一個Samba 密碼,客戶端就用此密碼訪問Samba資源。smbpasswd在/etc/samba中,有時須要手工建立該文件。
tdbsam:使用數據庫文件建立用戶數據庫。數據庫文件叫passdb.tdb,在/etc/samba中。passdb.tdb用戶數據庫可以使用smbpasswd –a建立Samba用戶,要建立的Samba用戶必須先是系統用戶。也可以使用pdbedit建立Samba帳戶。pdbedit參數不少,列出幾個主要的:
pdbedit -a username:新建Samba帳戶。
pdbedit -x username:刪除Samba帳戶。
pdbedit -L:列出Samba用戶列表,讀取passdb.tdb數據庫文件。
pdbedit -Lv:列出Samba用戶列表詳細信息。
pdbedit -c 「[D]」 -u username:暫停該Samba用戶帳號。
pdbedit -c 「[]」 -u username:恢復該Samba用戶帳號。
netbios name = MYSERVER # 設置出如今「網上鄰居」中的主機名
hosts allow = 192.168.2. 192.168.3. # 用來設置容許的主機,若是在前面加」;」則表示容許全部主機
log file = /var/log/samba/%m.log #定義samba的日誌,這裏的%m是上面的netbios name
max log size = 50 # 指定日誌的最大容量,單位是K。
例:共享一個目錄,任何人均可以訪問,即不用輸入密碼便可訪問,要求只讀。
[global]部分
把」MY GROUP」改爲」WORKGROUP」
把」 security = user」 修改成 「security = share」
而後在文件的最末尾處加入如下內容:
例:共享一個目錄,使用用戶名和密碼登陸後才能夠訪問,要求能夠讀寫。
使用linux訪問samba服務器:
安裝了samba-client軟件包,安裝完後就可使用smbclient命令。
smbclient //IP/共享名 -U 用戶名
經過mount掛載:
連接 :
Samba詳解 :http://blog.51cto.com/hmtk520/2065710
Linux環境下Samba文件共享服務 : https://mp.weixin.qq.com/s/BxyVt0kV-Q9W2QtLWc-inA
centos中samba服務不能訪問如何解決? : https://www.jb51.net/os/RedHat/538934.html
CentOS 6.3下Samba服務器的安裝與配置方法(圖文詳解) : https://www.jb51.net/os/RedHat/398108.html
CentOS下郵件服務sendmail的安裝及簡單配置 : https://www.jb51.net/os/RedHat/391912.html
用CentOS搭建文件服務器(Samba) : https://www.jb51.net/os/RedHat/32191.html
搭建samba服務,實現局域網文件共享 : http://blog.51cto.com/13728740/2137366
在ubuntu中部署samba服務器的方法 : https://www.jb51.net/article/95370.htm
SAMBA客戶端提示 NT_STATUS_HOST_UNREACHABLE 錯誤提示的解決辦法 : https://blog.51cto.com/lisiyun/p3