Samba服务搭建

Source

目录

前言:

一、samba 简介

二、samba 服务的特点

三、samba的主要应用

四、常见文件服务器软件的比较

五、samba服务搭建

1、安装Samba服务

2.启动服务

3、创建用户

4、pdbebit 参数说明

5、修改配置文件(先备份)

6、创建共享文件夹

7、设置samba用户登陆密码

六、windows客户端验证

总结


前言:

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。原本SMB协议是windows和windows(网上邻居)之间分享资源的一种协议。Linux找到微软,也想把该协议用在window和Linux的文件共享上,可微软没有同意,于是Linux通过逆向方法实现了SMB协议,为了与SMB区分并将其取名为SAMBA协议。

下面开始samba服务器的安装及使用吧

一、samba 简介

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

二、samba 服务的特点

smaba最大的特点就是可以用于linux和windows之间进行文件共享和打印机共享samba不仅仅可以用于linux和windows之间
samba还可以用于两台linux之间共享
由于linux平台诞生了一个更好的工具,nfs网络文件共享系统,专门用于linux之间文件数据共享●因此samba更多是使用linux和windows之间

三、samba的主要应用

  1. 文件共享(最主要作用)
  2. 打印服务器
  3. samba登陆时身份验证
  4. 由于samba基于Netbios,所以可以进行 windows的主机名解析

四、常见文件服务器软件的比较

服务名称 使用范围 服务器端 客户端 局限性
FTP 局域网和公网

Windows

Linux

Windows

Linux

无法直接在服务器端修改数据
Samba 内网

Windows

Linux

Windows

Linux

只能在内网使用
NFS 内网和公网 Linux

Linux

只能在Linux之间使用

五、samba服务搭建

实验目的

在linux虚拟机上(centos7环境)搭建一个samba服务并且在windows客户端访问

1、安装Samba服务

yum install -y samba           //安装samba 服务
 
yum list samba                    //列出软件包的信息
yum remove samba            //卸载软件包
yum check-update samba   //检查是否有可更新的软件包
yum update samba             //更新samba软件包

2.启动服务

systemctl start smb.service
systemctl enable smb.service
 
systemctl stop firewalld
setenforce 0

3、创建用户

groupadd test
useradd -M zhangsan -s /sbin/nologin/ -g test
useradd -M lisi -s /sbin/nologin/ -g test
 
id zhangsan
id lisi

4、pdbebit 参数说明

 -a, --create                       新建samba用户
  -r, --modify                       修改samba用户
  -x, --delete                       删除samba用户
  -L, --list                         列出全部samba用户,读取passdb.tdb数据库文件
  -v, --verbose                      显示详细信息
  -c, --account-control=STRING       账户控制值
 -w, --smbpasswd-style              以smbpasswd格式输出
  -u, --user=USER                    使用的用户
  -N, --account-desc=STRING          设置账户描述
  -f, --fullname=STRING              设置全名
  -h, --homedir=STRING               设置家目录
  -D, --drive=STRING                 设置家设备
  -S, --script=STRING                设置登陆脚本
  -p, --profile=STRING               设置配置文件路径
  -I, --domain=STRING                设置用户域名
  -U, --user SID=STRING              设置用户SID或RID
  -M, --machine SID=STRING           设置设备SID或RID
  -m, --machine                      账户是一个设备账户
  -b, --backend=STRING               使用不同的passdb作为默认后端
  -i, --import=STRING                指定后段导入用户账户
  -e, --export=STRING                导出用户账户到指定后端
  --policies-reset                   恢复默认策略
  -P, --account-policy=STRING        帐户策略的值(如最大密码有效期)
  -C, --value=LONG                   设置账号策略值
  --force-initialized-passwords      强制初始化passdb后端
  -z, --bad-password-count-reset     重置错误密码
  -Z, --logon-hours-reset            重置登陆时间
  --time-format=STRING               时间参数的格式
  -t, --password-from-stdin          从标准输入获取密码
  -K, --kickoff-time=STRING          设置开始时间
  --set-nt-hash=STRING               从nt-hash设置密码
  -d, --debuglevel=DEBUGLEVEL        设置debug级别
  -s, --configfile=CONFIGFILE        使用备用配置文件
  -l, --log-basename=LOGFILEBASE     设置日志文件的基本名称
  -V, --version                      输出版本号
  --option=name=value                从命令行设置smb.conf选项
  -?, --help                         显示帮助信息
  --usage                            显示简要的使用信息

5、修改配置文件(先备份)

进入配置文件vim /etc/samba/smb.conf

 编辑配置文件,添加一个以test作为网络共享文件名的共享目录。

[test]                 #共享文件名称(也就是客户端访问时可以看到的那个名字)        
        comment = this is test        #共享文件夹的描述
        path = /home/ceshi             #共享文件夹路径
        public = yes                    #是否允许guest账户访问
        writable =yes                #是否有写权限
        directory mask = 0777        #默认创建目录权限
        create mask = 0777             #默认创建文件权限
        valid users = @test,root  #设置允许访问共享目录的用户@后跟组名,不写此行就对所有用户开放
        write list = @test,root        #设置有写权限的用户@后面跟的是组名
        browseable = yes                 #该指定共享目录可浏览
        available = yes                      #该指定共享资源可使用

 testparm可以用来检测配置文件中是否有语法错误

6、创建共享文件夹

mkdir ceshi
cd ceshi/
echo "hello" > 1.txt
mkdir zz
chmod 777 ceshi/

systemctl  restart smb.service 启动服务
systemctl  reload smb.service 加载配置文件

7、设置samba用户登陆密码

smbpasswd -a zhangsan         # 将本地用户跟samba用户进行映射
smbpasswd -a lisi
 
pdbedit -a -u zhangsan
pdbedit -a -u lisi
 
pdbedit -L            #查看加入samba服务的用户

六、windows客户端验证

win+R     \\192.168.10.13

成功登录

在客户端上创建文件测试

测试成功

总结

Samba是根据SMB协议实现的,主要用于Windows和Linux之间共享资源。139端口是在NBT协议基础上的,关闭NBT协议139就废了。而445端口是在TCP/IP协议基础上,现在网络中应该很少有不使用TCP/IP协议的了。最后如果主机两种协议同时支持的话(比如windowsxp以后的操作系统)那么共享访问时候的端口使用优先级为:445>139,所以现在UNC路径访问ip地址都是使用445端口,而访问主机名形式是使用139端口(现在基本不用了)。
关闭139端口的方法:“网络连接/属性/TCPIP协议/属性/高级/WINS中设置启用或者禁用NBT(NetBIOS over TCP/IP)
关闭445端口的方法:防火墙阻塞445端口或者禁用server服务都可以。