SAMBA實現Solaris和Windows之間的文件共享
一、概述
Samba提供了Unix系統和Windows之間的文件和打印機共享服務。一臺Solaris的機器,如果配置了Samba Server,就能充當共享服務器;同時也能作為客戶機訪問網絡中其它Windows系統上的共享文件,或其它安裝了Samba Server的Solaris/Linux系統上的共享文件。
OpenSolaris在系統安裝的時候就已經包含了Samba,只需要簡單的配置就可以成為Samba Server。
二、配置Solaris的 Samba服務器
Samba服務器包含兩個Daemon,nmbd和smbd。smbd是 samba的內核,是建立對話,驗證客戶和提供文件系統和打印服務的基礎; nmbd則處理所有的名字注冊和解析請求,實現了網絡瀏覽的功能;它的任務是向局域網廣播Samba服務器所提供的服務;Nmbd使得Samba服務器顯示在windows操作系統的網絡鄰居中,允許用戶瀏覽可以通過samba使用的資源。
缺省OpenSolaris并沒有使能Samba服務。
# svcs -v | grep samba# ps -eaf | grep mbdSamba的共享方式包括share、user、server、domain 和ads。本文主要主要介紹share和user的共享方式。
2.1 配置share方式
采用share方式,用戶不需要輸入帳號和密碼就可以登陸samba服務器。其配置步驟為:
1) 創建一個Samba共享目錄
# mkdir -p /export/home/smbshare
2) 創建Samba配置文件
# cp /etc/sfw/smb.conf-example /etc/sfw/smb.conf
3) 編輯配置文件smb.conf
===== ===== /usr/sfw/smb.conf ==========security = share[homes]comment = Home DirectorIEsbrowseable = yeswritable = yespath = /export/home/smbshareguest ok = yesguest account = user1這里用戶是通過默認的user1來登陸的。用戶登陸之后,可以看到user1 所共享的文件和所有系統共享文件,其他用戶共享的文件能夠看得到,但是不一定能夠使用或者進的去。如果不設置guest account的話,則用戶就以默認的nobody進行登陸,只能夠使用系統設置的共享文件。其他用戶設置的文件不一定能夠使用。
4) 啟動Samba服務
# svCADm enable samba# svcs | grep sambaonline1:19:02svc:/network/samba:default# ps -eaf | grep mbdroot 24453 1 0 01:19:02 ? 0:00 /usr/sfw/bin/smbd -Droot 24450 1 0 01:19:02 ? 0:00 /usr/sfw/bin/nmbd -Droot 24454 24453 0 01:19:02 ? 0:00 /usr/sfw/bin/smbd -D2.2 配置user方式
配置成user方式需要提供用戶名和密碼進行驗證。這里Samba用戶必須是 Solaris系統用戶。而對同一個用戶來說,samba密碼和系統密碼不必一定相同。
1) 添加一個系統用戶(用已經存在的也可以)
# useradd -d /export/home/andy -m -s /usr/bin/bash andy
2) 用smbpasswd添加Samba用戶
# /usr/sfw/bin/smbpasswd -a andyNew SMB passWord: <password>Retype new SMB password: <password>Added user andy.# /usr/sfw/bin/smbpasswd -e andyEnabled user andy3) 編輯配置文件smb.conf
===== ===== /usr/sfw/smb.conf ==========security = user[homes]comment = Home DirectorIEs for %Svalid users = %S# 只有所有者能訪問該共享browseable = no# 該共享對其它用戶不可見writable = yescreate mask = 0640# 創建文件時的權限掩碼directory mask = 0750# 創建目錄時的權限掩碼這里%S通配符可以擴展成實際的共享名。這樣andy共享的注釋將是 “Home Directories for andy。
4) 重新啟動Samba服務
# svcadm restart samba
從其它系統上用samba訪問該Solaris機器時,如果輸入的用戶名是 andy,密碼是Samba密碼,就能看到/export/home/andy 下的內容。
三、Solaris訪問 Windows的共享資源
Samba包中已經包括了smbclIEnt、smbmount等的實用程序。smbclient程序提供了一個類似FTP 的模式界面,允許用戶共享Windows、Linux的資源,還可以用戶列出服務器上的可用共享資源。smbmount類似mount命令,將 Windows的共享目錄安裝到Linux的本地目錄。
1) 查詢網絡上的Samba服務器
# /usr/sfw/bin/findsmb
每個找到的服務器都會顯示其 IP 地址、NetBIOS 名稱、工作組名稱、操作系統、以及 SMB 服務器版本。
2) 列出Samba服務器上的可用資源
# /usr/sfw/bin/smbclient -L <hostname>
如果是 user共享方式,就要加“-U <user>選項如下。
# /usr/sfw/bin/smbclient -L <hostname> -U <user>
PassWord: <password>
如果是 share共享方式,可以不必理會用戶和密碼,要求輸入密碼時直接回車即可。
3) 連接Samba共享
# /usr/sfw/bin/smbclient //<hostname/<share> [-U <username>]
例如要訪問上文中的share共享時,可用
# /usr/sfw/bin/smbclient //hostname/homesPassword: <ENTER>Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.21b]
smb:>
要訪問上文中的user共享時,可用
# /usr/sfw/bin/smbclient //hostname/andy -U andyPassword: <andy_password>Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.21b]smb:>連接后,就能象FTP用戶一樣上傳和下載文件。用put表示上傳,用get表示下載。鍵入help獲得可用的命令列表。
4) 掛載Samba共享
Solaris 尚不支持smbfs和smbmount命令。解決方法之一就是使用Sharity。其安裝和使用都很簡單。
安裝 Sharity
# /usr/sfw/bin/wget http://www.obdev.at/ftp/pub/Products/Sharity3/sharity.3.3-beta3.solaris-i86pc.tar.gz# gunzip -c sharity.3.3-beta3.solaris-i86pc.tar.gz | tar xf -# cd sharity.3.3-beta3.solaris-i86pc# ./setup啟動和停止Sharity
重啟機器后,Sharity會自動運行
# svcs | grep sharitylegacy_run 0:38:06 lrc:/etc/rc2_d/S80sharity3legacy_run 0:38:14 lrc:/etc/rc3_d/S80sharity3停止 Sharity
# /usr/local/sharity3/sbin/sharity.init stop
啟動 Sharity
# /usr/local/sharity3/sbin/sharity.init start
訪問 share共享
# /usr/local/sharity3/bin/sharity login smb://<hostname>/<share>Share passWord for HOSTNAMESHARE: <ENTER># ls /CIFS/entire_network/<workgroup>/<hostname>/<share># cd /CIFS/<share>[<hostname>]訪問 user共享
# /usr/local/sharity3/bin/sharity login smb://<hostname>/<share> -U <user><user>'s password on <hostname>: <password># ls /CIFS/entire_network/<workgroup>/<hostname>/<share>附錄一、
Samba在 OpenSolaris中的目錄
/usr/sfw/sbin/smbd
/usr/sfw/sbin/nmbd
Samba 服務器的兩個daemon
/usr/sfw/bin/smb(*)
Samba 的常用工具
/etc/sfw/smb.conf-example
系統初始自帶的Samba配置文件示例
/etc/sfw/smf.conf
Samba 配置文件。系統缺省沒有這個文件,需要從 /etc/sfw/smb.conf-example拷貝或手工生成
/var/samba/log
默認存放 Samba日志的目錄
