转自:http://www.tangrucheng.com/centos6-5-setup-configure-samba.html
本文的场景是虚拟机运行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 。
TeX
12345 |
#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 |
重启防火墙,使规则生效
Shell
1 |
/etc/rc.d/init.d/iptables restart |
关闭SELINUX
TeX
12 |
#vi /etc/selinux/configSELINUX=disabled |
使配置生效重启计算机 # reboot
安装samba
Shell
1 |
# yum -y install samba samba-client |
设置开机启动
Shell
12 |
# chkconfig smb on# chkconfig nmb on |
配置samba
开始配置samba之前别忘记备份一下:
Shell
1 |
# cp /etc/samba/smb.conf /etc/samba/smb.conf.back |
接下来我是直接删除smb.conf文件,再创建smb.conf文件自行配置信息 配置信息如下:
INI
1234567891011 |
[global]workgroup=WORKGROUP #工作组[可自行设置]servicestring=SambaServer #设置samba服务器名称[可自行更改]netbiosname=SambaServer #设置服务器访问别名[可自行更改]security=user #设置samba服务器安全级别。user:samba服务器验证; share:无权限验证; server:第三方主机验证;domain[tangrucheng] #在Windows网上邻居中看到的共享目录的名字path=/data/www/www.tangrucheng.com #共享文件地址public=no #不公开目录writeable=yes #共享目录可以读写validuser=apache #只允许apache用户访问browseable=yes |
添加smb用户
在添加smb用户之前添加linux用户
Shell
1 |
# useradd newuser -d /home/newuser -s /bin/false |
然后,添加smb用户
Shell
因为上面配置smb的时候我的验证用户为apache,直接执行 # smbpasswd -a apache 就好了。
重启服务
Shell
或
Shell
1 |
# /etc/init.d/smb restart |
查看服务是否开启
Shell
12 |
# pstree |grep smb# netstat -tunpl |grep :13 |
测试
linux客户端:
Shell
1 |
# mount //192.168.10.1/tangrucheng /mnt -o username=apache |
window客户端:
TeX
1 |
\\192.168.10.1\tangrucheng |
查看所有会话 net use
清除记录会话 net use * /delete /y