一、samba简介
samba目前比较流行了文件服务器之一,samba主要用于沟通windows和unix like这两个平台,linux机器通过开启samba服务,能够将linux本机的某个磁盘空间共享出来,window机器能够访问linux共享出来的地址,并且windows操作该共享目录就像操作本机磁盘一样,毫无差别。
下面是我平时使用的主要的samba功能:
1)在windows机器上能够顺利的将文件拷贝到linux机器上,比如:linux服务器上运行的代码、离线环境下将linux版本软件拷贝到linux上;
2)共享linux服务器的存储空间;比如我有一个服务器,硬盘空间比较大,有几十个T,这样就装上linux系统,开一个samba服务就能够将服务器的硬盘空间共享出来,大家就能够使用了(这里有的朋友会问,我安装windows系统也行啊?对,windows系统的确也行,但是我选择linux的原因一个是linux系统相对来说还是比较稳定的,另一个原因就是目前linux的病毒相对较少【目前已经有了专门针对445端口的病毒windows下】)
二、samba搭建
不多说啦直接上实战,我的linux版本:centOS7.5
1) 首先先登录linux系统,我使用的是root账户,这样在安装的时候比较方便。
2)登陆系统后,首先检查该linux系统是否已经安装了samba服务(centOS7.5版本在装机的时候都是默认安装的),输入如下命令进行检查:
rpm -qa | grep samba
我的机器已经安装过samba这个服务了,我的查询结果如下:
上面的软件不都是必须的,其中必须的软件有一下几个:
1)samba-4.6.2-8.el7.x86_64 #这个软件提供了smb服务所需的各项服务程序
2)samba-client-4.6.2-8.el7.x86_64 #这个软件提供了当linux作为SAMBA Client端时,所需要的工具指令
3)samba-common-tools-4.6.2-8.el7.x86_64 #这个工具主要提供的是samba的服务端和客户端都需要的数据,包括samba的主要配置文件(smb.conf),语法检验指令(testparm)等等
上面的命令输入后,如缺少上面的几个或者其中一个必要的软件请将软件安装完整,yum安装是比较方便的,输入如下命令进行在线安装,离线的朋友也不用紧张,在linux的DVD版中的Packages中是有提供samba的软件安装包的(如需要离线安装请参考我的另一篇博客----将CentOS镜像配置为yum源);
yum install samba samba-client.x86_64 samba-common -y
上面的准备工作完成之后,开始samba配置文件的配置,samba的配置大致分为两种,一种是有密码的共享服务(每次机器重启后,需要输入用户名和密码才能登陆到samba),一种是不需要密码的,用户直接输入ip地址之后就能够直接进入共享文件夹,下面我分别介绍这两种配置文件的编写;
1.没有密码的配置文件实例,软件安装完成后samba配置文件的路径为(/etc/samba/smb.conf),vim /etc/samba/smb.conf 打开文件 :
[global]
workgroup = workgroup
security = user
map to guest = Bad User #这句很关键,加上这个配置项后用户不需要输入密码就能访问samba
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = no
create mask = 0777
directory mask = 0777
[shareroot]
comment = Public stuff
path = /home/shareroot #共享的目录
public = yes #公开访问
read only = no #只读访问
writeable = yes #用户有写入权限
browseable = yes #用户有浏览权限
guest ok = yes
write list = +staff #可写入用户配置
force create mask = 777 #用户通过samba创建文件的默认权限
force directory mask = 777 #用户通过samba创建文件夹的默认的权限
没有密码的配置很简单,将上面的配置完成后,检查linux的防火墙配置,我的是直接将防火墙关闭了,输入如下命令关闭防火墙
systemctl stop firewalld #关闭防火墙
setenforce 0 #关闭selinux
输入如下命令检查防火墙配置(下面的截图为防火墙关闭状态):
配置好上面的步骤后,samba就可以不适用密码登陆了(配置完成后还是有问题的朋友可以在下面留言讨论,咱们一起进步哈);
2.有密码的samba配置
1)修改samba的配置文件如下:
[global]
workgroup = workgroup
security = user
#map to guest = Bad User #将这一行注释掉
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = no
create mask = 0777
directory mask = 0777
[shareroot]
comment = Public stuff
path = /home/shareroot
public = yes
read only = no
writeable = yes
browseable = yes
guest ok = yes
write list = +staff
force create mask = 777
force directory mask = 777
2)使用useradd命令建立samba用户:
useradd -d /home/shareroot/ -s /sbin/nologin samba #创建smb用户,-s 后面的参数表示拥护没有登陆权限,-d 将用户的home目录设置为共享目录
3)将samba系统用户添加到samba服务用户列表中
pdbedit -a samba #将samba用户添加到samba中
输入上面的命令后,会提示输入密码,成功后提示如下:
4)重启samba服务:
systemctl restart smb
亲测,samba用户能够成功访问共享!