本文的场景是虚拟机运行CentOS6.5,本机是Win7,现欲把CentOS上的一个文件夹共享出来,Win的机器可以读写。
Samba与window连接需要使用NetBIOS协议,请确认你的Win7系统已经安装了NetBIOS协议。
组成Samba运行的有两个服务,一个是SMB,另一个是NMB;SMB是Samba 的核心启动服务,主要负责建立 Linux Samba服务器与Samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问,只有SMB服务启动,才能实现文件的共享,监听139 TCP端口;而NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,如果NMB服务没有启动,就只能通过IP来访问共享文件,监听137和138 UDP端口。
配置防火墙
使用Samba服务器需在防火墙下开启:UDP 137 UDP 138 TCP 139 TCP 445 ,如果你懒的配置,可以选择关闭防火墙 # service iptables stop 。
# vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
重启防火墙,使规则生效
/etc/rc.d/init.d/iptables restart
关闭SELINUX
# vi /etc/selinux/config
SELINUX=disabled
使配置生效重启计算机 # reboot
安装samba
# yum -y install samba samba-client
设置开机启动
# chkconfig smb on
# chkconfig nmb on
配置samba
开始配置samba之前别忘记备份一下:
# cp /etc/samba/smb.conf /etc/samba/smb.conf.back
接下来我是直接删除smb.conf文件,再创建smb.conf文件自行配置信息 配置信息如下:
[global]
workgroup = WORKGROUP #工作组[可自行设置]
service string = Samba Server #设置samba服务器名称[可自行更改]
netbios name = SambaServer #设置服务器访问别名[可自行更改]
security = user #设置samba服务器安全级别。user:samba服务器验证; share:无权限验证; server:第三方主机验证;domain
[tangrucheng] #在Windows网上邻居中看到的共享目录的名字
path = /usr/local #共享文件目录
public = no #不公开目录
writeable = yes #共享目录可以读写
valid user = luojianqun #只允许luojianqun用户访问
browseable = yes
添加smb用户
在添加smb用户之前添加linux用户
# useradd luojianqun-d /usr/local -s /bin/false //如果luojianqun存在就不需要添加了
然后,添加smb用户
# smbpasswd -a luojianqun
输入两次密码
重启服务
# service smb restart
或
# /etc/init.d/smb restart
查看服务是否开启
# pstree |grep smb
# netstat -tunpl |grep :13
测试
linux客户端:
# mount //192.168.10.1/luojianqun /mnt -o username=luojianqun
window客户端:
\\192.168.222.136\luojianqun
查看所有会话 net use
清除记录会话 net use * /delete /y
显示客户端信息
# smbstatus
用户名:luojianqun
密码:123456