目录
前言: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的主要应用
- 文件共享(最主要作用)
- 打印服务器
- samba登陆时身份验证
- 由于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 liy -s /sbin/nologin/ -g test
useradd -M yong -s /sbin/nologin/ -g test
id liy
id yong
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、修改配置文件
编辑配置文件,添加一个以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可以用来检测配置文件中是否有语法错误
testparm
6、创建共享文件夹
mkdir ceshi
cd ceshi/
echo "hello" > 1.txt
mkdir yy
chmod 777 ceshi/
systemctl restart smb.service 启动服务
systemctl reload smb.service 加载配置文件
7、设置samba用户登陆密码
smbpasswd -a liy # 将本地用户跟samba用户进行映射
smbpasswd -a yong
pdbedit -a -u liy
pdbedit -a -u yong
pdbedit -L #查看加入samba服务的用户
六、windows客户端验证
win+R \\192.168.58.20
成功登陆
在客户端上创建文件测试
测试成功
七、总结
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服务都可以。
原文链接:https://blog.csdn.net/weixin_56270746/article/details/125346887
此处评论已关闭