刚在虚拟机装完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
--------- -------
查看共享文挡,显示以下

今天写的文章,我的感受上有点迟钝(刚考完试,极可能是太累的缘故吧)。也不知道有没有错误?如发现错误的地方,请指正。谢谢!