本文的场景是虚拟机运行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端口。
配置这些东西你需要先拥有root权限。
首先关闭防火墙:service iptables stop,当初我就因为忽略这个花了一定的时间。
另外关闭SELINUX的强制模式:setenforce 0,这个也不可忽略,如果setenforce 1,就好多共享都不成功了。
一、安装前准备
二、安装Samba
1、检查Samba服务包是否已安装
rpm -qa | grep samba
samba-winbind-clients-3.5.4-68.el6.i686
samba4-libs-4.0.0-23.alpha11.el6.i686
samba-common-3.5.4-68.el6.i686
samba-client-3.5.4-68.el6.i686
说明samba已经安装,如果没有安装,运行下面命令安装
yum install samba
2、配置samba
chkconfig smb on #设置 Samba开机自动启动
service smb start #启动Samba服务
chkconfig nmb on #设置Samba别名服务自动启动
service nmb start #启动Samba别名服务
/etc/init.d/smb restart #重启
/etc/init.d/smb stop #停止
/etc/init.d/nmb restart #重启
/etc/init.d/nmb stop #停止
备份:cp /etc/samba/smb.conf /etc/samba/smb.confbak
恢复:cp /etc/samba/smb.confbak /etc/samba/smb.conf
vi /etc/samba/smb.conf
[global] #找到这一行(全局设置标签),在此行下面添加如下行:
workgroup = WORKGROUP #工作组名称改为 Windows 网络所定义的工作组名
server string = Samba Server #设置samba服务器的主机名称
security = user #设置samba服务器安全级别为user,即以账号和口令访问
netbios name = SambaServer #设置Samba服务器访问别名
#在配置文件的末尾添加以下自定义内容
[SambaServer] #在Windows网上邻居中看到的共享目录的名字
comment = SambaServer #在Windows网上邻居中看到的共享目录的备注信息
path = /home/SambaServer #共享目录在系统中的位置
public = no #不公开目录
writable = yes #共享目录可以读写
valid users=SambaServer #只允许SambaServer用户访问
保存配置
3、添加访问linux共享目录的账号SambaServer
用户家目录为/home/SambaServer, 用户登录终端设为/bin/false(即使之不能登录系统)
cd /home #进入/home目录
mkdir SambaServer #建立SambaServer文件夹
touch samba.txt #创建测试文件samba.txt
useradd SambaServer -d /home/SambaServer -s /bin/false
chown SambaServer:SambaServer /home/SambaServer -R
4、将用户SambaServer添加入到Samba用户数据库,并设置登录共享目录的密码为:123456
smbpasswd -a SambaServer
New SMB password: 输入该用户用于登录Samba的密码
Retype new SMB password: 再次确认输入该密码
Added user SambaServer.
#特别注意:这里设置的密码是用户登录Samba共享目录的密码,不是用户登录linux系统的密码
5、重启Samba服务器
/etc/init.d/smb restart
6、在Windows客户端输入
\\ip
或者
\\SambaServer #服务器别名
回车之后,会跳出来登录框,输入账号SambaServer 密码123456
即可访问共享目录
至此,CentOS 6.0 linux samba服务器配置完成。
三、在windows和Linux里访问samba
1、windows里直接win键 R:\\192.168.1.101
2、linux里用命令:
a、smbclient //IP地址/samba共享文件名 -U 用户名%密码,登陆后可能命令操作。不懂了可以用help。
b、 mount -t cifs //192.168.1.101/SambaServer /samba/
四、FAQ
1、访问不了samba服务?
答:a、确保smb服务启动。 b、关闭