剛在虛擬機裝完Linux操做系統,就有產生了這樣的想法:「linux與windows之間如何互聯呢?以及用戶如何更方便地彼此之間共享數據和打印機設備?」今天,咱們能夠經過Samba服務器就能夠地實現這一功能。它可以使Windows用戶經過網絡鄰居等熟悉方式來訪問Linux上的共享資源,而linux用戶經過SMB客戶端程序訪問Windows下的資源。
Samba服務前準備
查看RHEL(默認沒有安裝)是否安裝Samba服務以及安裝了何種版本,命令以下:
[root@localhost ~]# rpm -qa | grep samba
samba-common-3.0.10-1.4E
samba-3.0.10-1.4E
#samba服務端組件
system-config-samba-1.2.21-1
#samba圖形配置工具
samba-client-3.0.10-1.4E
#samba客戶端組件
若是沒有,拿出RHEL安裝盤,找到相應的組件(上面的rpm組件)進行安裝
[root@localhost ~]# rpm -ivh
samba服務RPM組件路徑
安裝完成後,還沒法使Linux服務器與Windows客戶端正常互聯。要使Samba正常、安全地提供服務,還須要設置/etc/samba/smb.conf這個配置文擋。
在進行配置工做前,須要開啓服務的相應端口(netbios,即windows 網上鄰居的 通訊協議)。
[root@localhost ~]# cat /etc/services | grep netbios
netbios-ns 137/tcp
# NETBIOS Name Service
netbios-ns 137/udp
netbios-dgm 138/tcp
# NETBIOS Datagram Service
netbios-dgm 138/udp
netbios-ssn 139/tcp
# NETBIOS session service
Samba服務相關文件
1)samba服務密碼文件(/etc/samba/smb.conf)
samba服務安裝完成後,這個文件默認下是不存在的。咱們能夠經過smbpasswd 來建立相應的用戶名和密碼
smbpasswd -a linux用戶名(訪問權限設定)
PS:samba服務與linux使用不一樣的密碼文件。所以,沒法用linux服務下的賬號來登陸到samba服務。
經過如下命令能夠查看到samba密碼文件
[root@localhost ~]# cat /etc/samba/smbpasswd
redhat:500:570CE399DA1412ABAAD3B435B51404EE:B9D2D4955B330B
503CC792EB6A55BB1F:[U ]:LCT-4911A2AD:
user1:501:570CE399DA1412ABAAD3B435B51404EE:B9D2D4955B330B5
03CC792EB6A55BB1F:[U ]:LCT-4911B0D4:
2)/etc/samba/smbusers
該文件是記錄用戶映射關係的
3)samba服務日誌文件
samba服務的日誌文件默認安裝在/var/log/samba/目錄中。所以,能夠根據日誌文件來查看服務的運行狀態以及用戶的訪問狀況
Samba服務主要配置
由於,samba配置選項不少,我選出一些經常使用配置來講明
[root@localhost ~]# cat /etc/samba/smb.conf
#== Global Settings(全局設置)======
[global]
workgroup = MSHOME
#羣組名稱彧者工做組域名
server string = Samba Server
#Samba服務的簡要說明
hosts allow = 192.168.0. 192.168.2. 127.
#訪問權限設定(容許192.168.0.0/24,192.168.2.0/24,127.0.0.0/8,中間須要用空格彧者逗號隔開)
printcap name = /etc/printcap
#打印機的配置文擋
load printers = yes
#是否加載打印機設備
; guest account = pcguest
#在這裏能夠設置guest賬號名,而設置的賬號名可以在/etc/passwd文件找獲得(在此建用戶名),若是未指定,使用「nobody」來處理。默認是不使用的
log file = /var/log/samba/%m.log
#日誌存擋文件
security = user
#安全級別有5種.1)share 這種安全級別是最低的,不須要用戶名和密碼來訪問samba服務 2)user(默認) 在訪問samba服務,須要賬號來驗證 3) server 這個也須要賬號來登陸,但密碼是別外一臺服務器 4)domain 5)ads
; password server =
<
NT-Server-Name
>
interfaces = 192.168.0.253 #有多網卡時,須要設置監聽的網卡
;interfaces = eth1(網卡參數彧者IP地址)
WINS Server
; wins support = yes
; wins server = w.x.y.z
; wins proxy = yes
#==== Share Definitions (共享目錄)======
idmap uid = 16777216-33554431
idmap gid = 16777216-33554431
template shell = /bin/false
winbind use default domain = no
[homes]
#用戶的主目錄
comment = Home Directories
#註釋說明
browseable = no
#是否容許瀏覽別人主目錄
writable = yes
#是否執行寫操做
[share]
#測試目錄
comment = Samba Share
browseable = yes
writable = no
path = /samba/share
#共享路徑
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
# Set public = yes to allow user 'guest account' to print
guest ok = no
writable = no
printable = yes
當配置完成後,須要從新啓用samba服務
[root@localhost ~]# /etc/init.d/smb restart
#從新啓動Samba服務
[root@localhost ~]# service smb start
#啓動Samba服務
[root@localhost ~]# /etc/init.d/smb stop
#中止Samba服務
咱們在Windows客戶端(192.168.0.100)下測試。linux:IP 192.168.0.1
由於,我配置的時候,開啓了驗證功能
哈哈,能夠在windows下查看linux共享資源
若是,要在Linux下查看windows下共享資源。首先,要安裝samba-client客戶端組件。查看是否被安裝
[root@localhost ~]# rpm -q samba-client
samba-client-3.0.10-1.4E
#客戶端組件
查看查看windows(192.168.0.100)下共享資源列表
[root@localhost ~]# smbclient -L //192.168.0.100 -U anonymous
WARNING: no network interfaces found
Password:
Domain=[ZHOUZHIWEI] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
Sharename Type Comment
--------- ---- -------
share Disk
session request to 192.168.0.100 failed (Called name not present)
session request to 192 failed (Called name not present)
Domain=[ZHOUZHIWEI] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
Server Comment
--------- -------
Workgroup Master
--------- -------
查看共享文擋,顯示以下
今天寫的文章,我的感受上有點遲鈍(剛考完試,極可能是太累的緣故吧)。也不知道有沒有錯誤?如發現錯誤的地方,請指正。謝謝!