Linux環境下Samba檔案共享服務
01
服務概述
在Windows網路環境中,主機之間進行檔案和印表機共享是通過微軟公司自己的SMB/CIFS網路協議實現的。SMB(Server Message Block,服務訊息塊)和CIFS(Common Internet File System,通用網際網路檔案系統)協議是微軟的私有協議,在Samba專案出現之前,並不能直接與Linux/unix系統進行通訊。
Samba是著名的開源軟體專案之一,它在Linux/unix系統中實現了微軟的SMB/CIFS網路協議,從而使得跨平臺的檔案共享變得更加容易。在部署windows、Linux/unix混合平臺的企業環境時,選用Samba可以很好的解決不同系統之間的檔案互訪問題。
02
安裝需要的升級包
samba 服務端軟體
samba-client 客戶端軟體
samba-common 提供服務端和客戶端的公共元件
System-config-samba samba 的圖形介面軟體包
Samba-swat samba的web介面管理軟體包
03
Samba服務相關程序及埠號
/usr/sbin/smbd 為客戶機提供伺服器中的共享資源的訪問
/usr/sbin/nmbd 提供基於 NetBIOS 協議的主機名稱解析
Samba的指令碼 /etc/init.d/smb
Samba的埠:
Nmbd:(137138)NetBIOS 協議
smbd:139(SMB 協議) 445(CIFS 協議)
04
主配置檔案smb.conf
Samba服務的配置檔案位於/etc/samba目錄中,其中smb.conf是主配置檔案。在smb.conf檔案中,以“#”號開始的行表示註釋性的文字,以“;”開始的行表示是配置樣例。
在配置共享資料夾時,使用者可以參考檔案中提供的樣例行進行設定。刪除註釋行,樣例行及空行以外的內容,才是samba伺服器的有效配置。
[global]全域性配置:這部分配置項的內容對整個samba伺服器都有效。
[homes]宿主目錄共享設定:設定Linux使用者的預設共享,對應使用者的宿主目錄。當用戶訪問伺服器中與自己使用者名稱同名的共享目錄時,通過驗證後將會自動對映到該使用者的宿主資料夾中。
[printers]印表機共享設定:如果需要共享印表機裝置,可以在這部分進行設定。若需要在smb.conf檔案中設定新的共享資料夾,只需要增加一段如“[myshare]”開始的共享設定即可,其中“myshare”為使用者自定義的共享名。新的共享資料夾設定可以參考“[homes]”和“[printers]”部分的內容。
Samba伺服器的常見配置項及含義說明
配置項 | 說明 | |||
workgroup | 設定伺服器所在的工作組名稱。 | |||
server string | 設定伺服器的說明文字,用於描述samba伺服器。 | |||
security | 設定伺服器的安全級別,share:可匿名訪問、user:需由本伺服器驗證使用者名稱及密碼、server:需指定另一臺伺服器來驗證使用者名稱及密碼、domain:由windows域控制器驗證使用者名稱及密碼。 | |||
log file |
設定samba伺服器的日誌檔案,預設設定為“/var/log/smaba/log.%m",表示將日誌檔案儲存到/var/log/samba目錄中,按每個客戶機建立一個日誌檔案。其中“%m”變量表示客戶端主機名或ip地址。 |
|||
passwd backend | 設定共享賬戶檔案的型別,預設使用tdbsam(TDB資料庫檔案)。 | |||
comment | 設定對應共享目錄的註釋、說明資訊。 | |||
path | 設定對應共享目錄在伺服器中的資料夾路徑。 | |||
browseable | 設定該共享目錄中“網路鄰居”中是否可見,設定為no時相當於隱藏共享目錄。 | |||
guest ok | 設定是否所有人都可以訪問共享目錄,與“public”配置項的作用相同。 | |||
writable | 設定該共享目錄是否可寫,與“read only”配置項的作用相反。 |
05
安裝服務
1.掛載光碟
[[email protected] ~]# mkdir /media/cdrom
[[email protected] ~]# mount /dev/cdrom /media/cdrom/
mount: block device /dev/sr0 is write-protected, mounting read-only
[[email protected] ~]#
2.安裝軟體包
[[email protected] ~]# cd /media/cdrom/Packages/
[[email protected] Packages]# rpm -ivh samba-3.6.9-164.el6.x86_64.rpm
warning: samba-3.6.9-164.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:samba ########################################### [100%]
[[email protected] Packages]# rpm --import /media/cdrom/RPM-GPG-KEY-CentOS-*
[[email protected] Packages]# rpm -ivh samba-client-3.6.9-164.el6.x86_64.rpm Preparing... ########################################### [100%]
package samba-client-0:3.6.9-164.el6.x86_64 is already installed
[[email protected] Packages]# rpm -ivh samba-common-3.6.9-164.el6.x86_64.rpm Preparing... ########################################### [100%]
package samba-common-0:3.6.9-164.el6.x86_64 is already installed
[[email protected] Packages]#
3.建立測試檔案備份smb.conf到自定義資料夾/beifen 下
[[email protected] Packages]# mkdir /gongxiang
[[email protected] Packages]# mkdir /beifen
[[email protected] Packages]# cp /etc/samba/smb.conf /beifen/
4.設定共享目錄[test]將samba的安全級別改為share。
[[email protected] Packages]# vim /etc/samba/smb.conf
此處省略配置檔案中的註釋行
workgroup = MYGROUP
server string = Samba Server Version %v
此處省略配置檔案中的註釋行
log file = /var/log/samba/log.%m
max log size = 50
此處省略配置檔案中的註釋行
security = share
passdb backend = tdbsam
///[home]和[printers]全部註釋掉,否則共享時家目錄也會出現。
#[homes]
# comment = Home Directories
# browseable = no
# writable = yes
#; valid users = %S
#; valid users = MYDOMAIN\%S
///設定共享目錄
[test]
comment = Public Stuff
path = /gongxiang
public = yes
read only = no
# valid users = test1,test2
# write list = test1
# directory mask = 0755
# create mask =0644
[181118]
comment = Public Stuff
path = /beifen
public = yes
read only = no
#[printers]
# comment = All Printers
# path = /var/spool/samba
# browseable = no
# guest ok = no
# writable = no
# printable = yes
5.關閉防火牆,啟動服務並監聽smb埠是否正常執行;
[[email protected] Packages]# service smb start
啟動 SMB 服務: [確定]
[[email protected] Packages]# netstat -anpt | grep smb
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 48344/smbd
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 48344/smbd
tcp 0 0 :::139 :::* LISTEN 48344/smbd
tcp 0 0 :::445 :::* LISTEN 48344/smbd
[[email protected] Packages]# service iptables stop
iptables:將鏈設定為政策 ACCEPT:filter [確定]
iptables:清除防火牆規則: [確定]
iptables:正在解除安裝模組: [確定]
[[email protected] Packages]# setenforce 0
6.確認客戶端的ip地址及聯通性;
[[email protected] Packages]# ping 192.168.231.132
PING 192.168.231.132 (192.168.231.132) 56(84) bytes of data.
64 bytes from 192.168.231.132: icmp_seq=1 ttl=128 time=0.384 ms
^C
--- 192.168.231.132 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 953ms
rtt min/avg/max/mdev = 0.384/0.384/0.384/0.000 ms
7.訪問測試檔案,在windows中開啟檔案資源管理器輸入\\ip地址進行訪問;
-
Samba服務的預設安全級別為user,要求提供使用者驗證。對於匿名共享服務,一般將安全級別設為share。
-
使用pdbedit工具可以建立、刪除Samba共享使用者。
-
通過smbusers檔案可以為共享使用者賬號設定別名。
-
使用smbclient工具可以查詢並登入、訪問共享資源,而使用mount命令可以將共享資料夾掛載到本地。