一文带你快速理解什么是Samba服务

大家好呀!这里是码农后端。今天来简单聊一聊SAMBA服务。SAMBA服务主要用于实现windows和Linux下的文件共享、打印共享等。

1、什么是SAMBA?

SMB(Server Message Block)协议实现文件共享,也称为CIFS(Common Internet File System),是Windows和类Unix系统之间共享文件的一种协议。客户端主要是Windows,支持多节点同时挂载以及并发写入主要用于windows和Linux下的文件共享、打印共享,实现匿名与本地用户文件共享

2、SAMBA主要进程

2.1 smbd进程

控制发布共享目录与权限、负责文件传输TCP,139 445

2.2 nmbd进程

1)用于名称解析netbios,UDP,137 138

2)基于NETBIOS协议获得计算机名称 => 解析为相应IP地址,实现信息通讯

NetBIOS(Network Basic Input/Output System),一般指用于局域网通信的一套API

3、SAMBA环境准备

1)从模板机中克隆一台Linux服务器SAMBA

2)更改主机名与IP地址

# 更改主机名
hostnamectl set-hostname samba.itweb.cn
# 切换生效
su
# 打开网卡配置文件并编辑
vim /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=none
IPADDR=192.168.91.10
NETMASK=255.255.255.0
GATEWAY=192.168.91.2
DNS1=8.8.8.8
DNS2=114.114.114.114
# 重启网络
systemctl restart network

注:如果是多张网卡,建议使用ifdown ens33以及ifup ens33实现重启网络操作

3)关闭防火墙与SELinux

#关闭防火墙
systemctl stop firewalld
#禁止开机启动
systemctl disable firewalld
#获取SELinux的状态,并关闭
setenforce 0

vim /etc/selinux/config
SELINUX=disabled

4)配置yum源

有网情况下使用默认yum源即可

yum clean all
yum makecache

4、SAMBA软件安装(服务器搭建)

# 安装软件
yum install samba -y
# 查询所有以samba开头的软件包
rpm -qa |grep ^samba

2b94e10b9ef18d0d37e2d3f793a25419.png

注:SAMBA是一个C/S架构的软件,Client主要是Windows

5、smb配置文件

# 打开配置文件
vim /etc/samba/smb.conf

[global]  全局选项
	workgroup = MYGROUP                 定义samba服务器所在的工作组
	server string = Samba Server Version %v         smb服务的描述
	log file = /var/log/samba/log.%m            日志文件
	max log size = 50                   日志的最大大小KB  
	security = user             认证模式:share匿名|user用户密码|server外部服务器用户密码
	passdb backend = tdbsam         密码格式
	load printers = yes         加载打印机
	cups options = raw          打印机选项
[homes]                 局部选项(共享名称)
	comment = Home Directories      描述
	browseable = no      隐藏共享名称
	writable = yes      可读可写
[printers]      共享名称
	comment = All Printers       描述
	path = /var/spool/samba  本地的共享目录
	browseable = no  隐藏
	guest ok = no ——>   public = no  需要帐号和密码访问
	writable = no  ——>  read only =yes 不可写 
	printable = yes      打印选项
[share]
	path = /dir1
	guest ok = no
	writable = yes

6、SAMBA综合案例

搭建一个SAMBA服务,共享一个目录/samba/share,客户端使用user01/123,通过windows或Linux可以在该目录里创建或删除文件。

1)SAMBA服务器环境准备

更改主机名称、IP地址、关闭防火墙、SELinux、配置YUM源

2)安装SAMBA软件

yum install samba -y

3)查询SAMBA生成文件列表(rpm  -ql)

rpm -ql samba

4)在服务器端创建一个共享目录

mkdir /samba/share -p

5)编辑配置文件(/etc/smb.conf),实现SAMBA共享

vim /etc/samba/smb.conf

...
[smb_share]
        comment = samba service
        path = /samba/share
        guest ok = no
        writable = yes
或
[samba_share]
        path = /samba/share
        public = no
        writable = yes

注:guest ok 等价于 public

6)创建一个user01用户,然后添加到samba认证中,设置密码为123

# 创建用户
useradd user01
# 设置密码
smbpasswd -a user01

上述操作完成后,SAMBA系统中就增加了一个user01的账号及123的密码

7)启动nmb与smb服务

systemctl start nmb
systemctl start smb

8)基于Windows或Linux实现文件共享

Windows:

a、首先安装SAMBA支持。打开控制面板 => 程序与功能选项。

fc51e9816808ad9c08a8b3f6c70cecc3.png

b、找到Windows功能选项

cf920bb2e5e3ff30049ee77109c598a0.png

c、安装SAMBA功能(客户端)

如下勾选上即可

c509320df00174da216b6d9bbe0e36f7.png

d、进入计算机(此电脑)=> 映射网络驱动器

7129399a4d35971a141b049871303253.png

e、设置SAMBA服务器的地址信息:

cb3cac23a7587aeca23f40a0730d9665.png

192.168.91.10 => Linux服务器的IP地址 smb_share => 配置的SAMBA标签

思考:为什么挂载完成后,目录不可写?

答:由于/samba/share目录没有写入权限

解决:增加权限

# 针对/samba/share目录设置一个权限
setfacl -m u:user01:rwx /samba/share

9)基于Linux或Linux实现文件共享

smbclient -L 192.168.91.10 -U user01

使用smbclient查看目录信息

smbclient //192.168.91.10/smb_share -U user01

把SAMBA挂载到Linux系统(类似NFS)

mkdir /u01

mount.cifs -o user=user01,pass=123 //192.168.91.10/smb_share /u01

访问控制说明:

# 控制读写权限
	writable = yes/no
	readonly = yes/no

# 如果资源可写,但只允许某些用户可写,其他都是只读
write list = admin, root, @staff(用户组)
read list = mary, @students

# 控制访问对象(以上两个选项只能存在其中一个)
	valid users = tom,mary,@itcast
	invalid users = tom

# 网络访问控制(若deny和allow同时存在,allow优先)
hosts deny = 192.168.0.   拒绝某个网段
hosts allow = 192.168.0.254  允许某个IP
hosts deny = all  拒绝所有
hosts allow = 192.168.0. EXCEPT 192.168.0.254  允许某个网段,但拒绝某个单个IP

7、总结

1)ftp:局域网外网都可以

2)nfs:局域网,挂载方式访问 mount.nfs,侧重于Linux与Linux之间。

3)samba:局域网,直接访问(smbclinet)挂载的方式 mount.cifs,侧重于Windows与Linux之间。

好了,以上就是今天这篇文章的全部内容了。如果你想及时看到我的文章,只需做这几个动作:点星标、点在看(包括赞)、评论、分享,我就会经常出现在您的常读列表,后面更新都会提醒。感谢大家的关注和支持,祝大家生活美满,学业有成,事业蒸蒸日上!

最后,星标设置如下:

be1e61628a2efdce81b8a4f2ff617eae.png

如下即设置成功!

b13697018832fdd2a10b564a6d521342.png

往期精彩文章推荐(点击下方蓝字即可阅读!)

往期推荐

什么是生成式AI?什么是AIGC?

一文带你快速理解什么是NFS?

一文带你快速理解什么是FTP文件传输服务

什么是数据同步服务RSYNC?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TechInfQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值