一、什么是samba服务器?
先上一段百度百科:
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。 通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
总之一句话:samba服务器可以实现局域网内共享文件和打印机(这在其配置文件中也有体现),是linux系统常见的服务之一。
二、CentOS 7 配置samba服务器
1.设置静态IP–192.168.222.110
服务器的IP地址不宜经常变动,所以需要设置为一个固定IP,我这里以192.168.222.110为例
vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
IPADDR=192.168.222.110
NETMASK=255.255.255.0
GATEWAY=192.168.222.2
ONBOOT=yes
重启网络
systemctl restart network
2.安装samba服务
这里使用网络源yum安装
yum -y install samba samba-client
3.配置samba端口–139,445
firewall-cmd --permanent --add-port=139/tcp
firewall-cmd --permanent --add-port=445/tcp
如果系统里没有iptbles文件,可按如下步骤配置:
#停止、屏蔽firewall服务
systemctl stop firewalld
systemctl mask firewalld
#安装iptables-services
yum -y install iptables-services
#启用、启动iptables服务
systemctl start iptables
systemctl enable iptables
#保存防火墙规则
service iptables save
4.临时关闭防火墙、SELinux
systemctl stop firewalld
setenforce 0
#查看状态
systemctl status firewalld
getenforce
5.查看、备份配置文件(防止改错文件无法启动服务)
ll /etc/samba #服务配置文件所在目录
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
6.添加系统用户test,设置密码123456
useradd test
passwd test
7.设置smb用户,设置密码123456
smbpasswd -a test
8.创建共享目录,赋予权限
mkdir /opt/test
chmod 777 /opt/test
chown test:test /opt/test
9.编辑配置文件
vi /etc/samba/smb.conf
添加内容
[test] #共享描述
comment = test
path = /opt/test #共享路径
public = yes #是否公开
writable = yes #目录下的文件可写
guest ok = yes
browseable = yes
#权限设置
create mask = 0777
directory mask = 0777
security = share #无密码登录
available = yes
10.启动服务,并设置为开机自启
systemctl start smb
systemctl enable smb
11.测试-Windows地址查看
在Windows 我的电脑地址栏输入 \\192.168.222.110
如图,可看到刚才设置的test文件夹。
现在在test文件夹新建一个test.txt文件,输入“I am testing samba.”
保存退出,进入linux系统,查看相应位置
可看到我刚才创建的文件以及内容(没有换行符)
达到了共享文件的目的,服务配置成功。
12.我部署samba时遇到的4个问题
(1)Windows无法连接/连接时长时间无反应
原因:未配置防火墙139、445端口
措施:配置端口,重启服务
(2)无访问权限
原因:共享文件夹以及文件没有rw权限
措施:chmod 777
或者写入配置文件 create mask
directory mask
(3)密码正确,但无法登录
原因:Windows安全策略配置错误
措施:Win+R 运行secpol.msc,进入本地安全策略
网络安全:LAN管理器身份验证级别 设置为 仅发送NTLMV2响应,拒绝LM和NTLM(&)
网络访问:本地账户的共享和安全类型 改为 仅来宾-对本地用户进行身份验证,其身份为来宾
(4)拒绝访问
原因:配置文件错误
措施:
vi /etc/samba/smb.conf
hosts allow = 192.168.43.128 #删除即可,这个选项可以不用设置