关注我们,获取更多干货内容!
在早期的网络世界当中,不同主机的文件传输大多使用FTP来进行。不过FTP却有个小小的问题,那就是无法直接修改主机上面的文件内容!也就是说,你想要更改Linux主机上面的某个文件时,你必须要将该文件下载后才能修改。
在日常办公环境中,操作系统除了Windows以外,还有Linux或者UNIX。Windows和Linux或UNIX之间共享文件是无法直接完成的,为了解析不同系统之间的文件和打印机等资源的共享,今天的OS课堂就来介绍一下Samba共享服务,它可以解决不同系统平台之间的共享问题。
一、Samba介绍
samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成,也是一个C/S软件。
SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他。
应用场景
文件与打印机共享:samba的主要功能,samba进程实现资源共享,将文件和打印机甚至是设备(如:CDROM)发布到网络中,以供用户访问
身份验证和权限验证:对用户身份进行验证及权限设置,通过加密的方式保护共享文件和打印机
名称解析:通过nmbd服务实现名称解析,将NetBIOS名称解析为IP地址
浏览服务:在局域中,samba可以成为本地主浏览器,保存可用资源列表,当用户访问时,会提供浏览列表
Samba与NetBIOS
samba是构建在NetBIOS这个协议之上的,而NetBIOS最早是从IBM诞生的,目的是让局域网内的计算机能够进行网络连接,由于不是针对于大型网络,所以NetBIOS是无法跨路由的。而windows操作系统也支持这个协议,所以在Linux主机上使用samba部署的共享服务是可以使用windows主机访问的。那么samba是不是就不能跨路由提供服务了呢?并不是,我们可以通过一个叫NetBIOS over TCP/IP的技术实现跨路由的samba服务,但是目前samba还是在局域网用的较多
Samba的相关守护进程
nmbd:使用UDP的137、138来提供名称解析服务(NetBIOS)
smbd:管理共享和数据传输,使用的端为TCP的139、445
相关软件包
samba 主程序包,服务端需要
samba-client 客户端工具包
samba-common 通用工具和库文件,客户端服务器端都需要安装
相关文件
· /etc/samba/smb.conf 主配置文件
· /etc/samba/smb.conf.example 模板文件
· /var/log/samba/log.nmbd nmbd进程的解析信息
· /var/log/samba/log.smbd 记录用户的访问记录、服务器的问题
二、Samba安装部署
[root@kylin-server01 kylinserver]# systemctl stop firewalld
a、安装软件包
[root@kylin-server01 kylinserver]# yum install samba -y
b、设置服务开机启动
[root@kylin-server01 kylinserver]# systemctl enable smb.service
Created symlink /etc/systemd/system/multi-user.target.wants/nmb.service → /usr/lib/systemd/system/nmb.service.
[root@kylin-server01 kylinserver]# systemctl enable nmb.service
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.
c、开启服务
[root@kylin-server01 kylinserver]# systemctl start nmb.service
[root@kylin-server01 kylinserver]# systemctl start smb.service
d、创建共享资源账户
[root@kylin-server01 kylinserver]# useradd kylin
[root@kylin-server01 kylinserver]# id kylin
用户id=1001(kylin) 组id=1001(kylin) 组=1001(kylin)
[root@kylin-server01 kylinserver]# pdbedit -a -u kylin
new password:
retype new password:
Unix username: kylin
NT username:
......
......
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
e、创建共享资源文件目录
[root@kylin-server01 kylinserver]# mkdir /kylindate #创建目录
[root@kylin-server01 kylinserver]# chmod 755 /kylindate #设置目录权限
[root@kylin-server01 kylinserver]# chown -Rf kylin1:kylin1 /kylindate #设定目录所有者和所属组
f、修改Samba主配置文件,修改共享信息
[root@kylin-server01 ~]# vim /etc/samba/smb.conf #打开配置文件在文件末尾添加下面内容
[kylindate] #共享名称
comment=kylinshare #说明告知
path = /kylindate #共享文件夹
allow hosts = 192.168.0.0/16
user = kylin #用户
writable = yes #定义是否可以写入操作
g、重启服务
[root@kylin-server01 kylinserver]# systemctl restart nmb.service
[root@kylin-server01 kylinserver]# systemctl restart smb.service
语法检测
[root@kylin-server01 kylinserver]# systemctl enable nmb.service
准备测试文件
[root@kylin-server01 ~]# echo kylintest > /kylindate/test.txt #创建测试文件
[root@kylin-server01 ~]# cat /kylindate/test.txt
kylintest
三、测试验证
win端测试
windows10环境
按win+R键打开运行窗口
输入:\IP\samba_dir
例如:\192.168.235.168\kylindate
kylinos端测试
[root@kylin-server02 ~]# smbclient -L //192.168.235.168 -U kylin
Enter SAMBA\kylin's password:
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
kylindate Disk kylinshare
IPC$ IPC IPC Service (Samba 4.11.6)
kylin Disk Home Directories
SMB1 disabled -- no workgroup available
三、Samba配置文件详解
主配文件路径: /etc/samba/smb.conf
模板文件:/etc/samba/smb.conf.example
额外的用法
pdbedit -a username:新建Samba账户。
pdbedit -x username:删除Samba账户。
pdbedit -L:列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit -Lv:列出Samba用户列表的详细信息。
pdbedit -c “[D]” –u username:禁用该Samba用户的账号。
pdbedit -c “[]” –u username:恢复该Samba用户的账号。
ldapsam:基于LDAP的认证方式,首先要有LDAP服务,并且加入到LDAP中
passdb backend = tdbsam
#共享名称
[homes]
描述
comment = Home Directories
是否为隐藏共享
browseable = no
是否允许写入
writable = yes
允许访问该共享资源的smb用户,@组
; valid users = %S
; valid users = MYDOMAIN\%S
打印机共享
[printers]
描述
comment = All Printers
路径
path = /var/spool/samba
是否可浏览,no类似隐藏共享
browseable = no
是否支持guest访问,和public指令类似
guest ok = no
是否可写
writable = no
是否允许打印
printable = yes
今天的学习内容到这里就结束啦~
如何实现Samba共享服务
你学会了吗?


机智的小伙伴已经去报名了!
最新资讯 ↓
就这么简单!图解教程教你安装优麒麟双系统!!
麒麟软件学院
麒麟软件有限公司下设的一级组织机构,主要负责麒麟操作系统培训品牌建设、人才生态的打造,人才培训体系与培养体系的建设与落地。自2019年开展麒麟认证培训业务以来,麒麟软件已经为来自数千家单位学员提供了培训服务,获得了业内一致好评。其中包含各党、政、军机关及企事业单位,也不乏在校学生及自由职业者。


