28. linux中samba服务器的搭建与使用

本文详细介绍Samba服务器的搭建步骤、配置方法及其在Linux与Windows间资源共享的应用。涵盖服务安装、防火墙设置、用户权限管理、目录共享及多用户挂载等关键环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Lesson28 linux中samba服务器的搭建与使用

1. 什么是samba服务器
samba是一个能让你的Linux、unix计算机和其他MS Windows计算机相互共享资源的软件。
samba提供有关资源共享的三个功能,包括,
smdb,执行它可以使用Linux能够共享资源给其他计算机;
而smbclient就是让Linux去存取其它计算机的资源;
最后一个smbmount则是类似MS Windows下“万股咯磁盘驱动器”的功能,可以让你把其他计算机的资源挂在自己的档案系统下。
他们功能虽然简单,但没有Samba,Linux/Unix和Windows的资源就很难共享。
samba的功能十分实用,虽然没有靓丽的外表,但是在局域网中,它是一个很重要的工具
Samba是一个开源 / 自由软件套件
自1992年以来,它为各种SMB / CIFS客户端提供文件和打印服务,包括众多版本的Microsoft Windows操作系统。
Samba可以在GNU通用公共许可证下免费获得。
Samba项目是Software Freedom Conservancy的成员。
可在Linux系统上实现。
```javascript
SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议
它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务

smb使用的端口为139和455,TCP和UDP均可

2.搭建samba服务器
这里千万注意,如果desktop虚拟机和server虚拟机是7.0版本的,那么在使用共享yum源的时候版本一定要对应,不要使用7.3版本的共享yum源,否则主配置文件不一样

本节实验我用desktop虚拟机作为服务器端
配置好服务器端和测试端两端的yum源

配置desktop虚拟机的静态IP为172.25.254.114
改desktop主机名字
在这里插入图片描述
改server主机名字
在这里插入图片描述

在服务器上
yum search samba #寻找yum源可以提供的samba安装包
在这里插入图片描述
在这里插入图片描述

yum install samba-client.x86_64 samba-common.x86_64 samba.x86_64 -y #(这里一共需要安装三个软件包)
在这里插入图片描述
安装完成后,开启samba服务
在这里插入图片描述
rpm -ql samba-common #查看samba服务的主配置文件
在这里插入图片描述
rpm -qc samba-common #查看samba服务的版本

在这里插入图片描述
查看smb服务占用的端口:445和139
在这里插入图片描述
查看火墙允许的服务列表
在这里插入图片描述
给火墙服务添加允许samba的相关服务

systemctl restart smb  #重启samba服务
systemctl enable smb #设置samba服务开机启动
systemctl status firewalld #查看samba服务器防火墙的状态
firewall-cmd --add-service=samba #火墙允许samba服务
firewall-cmd --add-service=samba_client #火墙允许samba服务
firewall-cmd --reload #重新加载使其生效

在这里插入图片描述
添加两个本地用户
在这里插入图片描述
给这两个用户设置密码
在这里插入图片描述

pdbedit -L #查看samba用户
在这里插入图片描述
测试:使用ssh连接172.25.254.18主机,在客户端安装samba-client软件包
在这里插入图片描述
以匿名用户的身份查看samba服务器共享的目录
在这里插入图片描述
以指定用户的身份查看samba服务器共享的目录
在这里插入图片描述
以指定用户身份登录samba查看(不加-L)
在这里插入图片描述
可以进行上传文件的操作
在这里插入图片描述
从172.25.254.18主机对172.25.254.114服务器进行上传文件的操作后,在114主机指定用户家目录中可以看到上传的文件
在这里插入图片描述
在这里插入图片描述
在172.25.254.18主机上进行挂载,指定westos用户将samba目录挂载在系统目录/mnt下,进入/mnt目录可以看到刚才上传的文件
在这里插入图片描述
并且也可以进行文件的删除操作
在这里插入图片描述
在172.25.254.18主机上建立的文件,在desktop服务器端用户的家目录下可以查看到
在这里插入图片描述
在172.25.254.18主机上对desktop服务器端的文件进行删除操作,那么desktop用户的家目录中可以看到,文件被删除不存在了
在这里插入图片描述

3. samba服务的配置文件权限修改
3.1 samba服务器域名的修改

desktop服务器端
vim /etc/samba/smb.conf #编辑samba服务的配置文件

在这里插入图片描述
将域名改为WESTOS
在这里插入图片描述
重启samba服务
在这里插入图片描述
测试:在172.25.254.18主机上查看,可以看到,Domain由MYGROUP变成了WESTOS
在这里插入图片描述

3.2 samba服务器黑白名单的设置

黑名单的设置
vim /etc/samba/smb.conf #编辑samba服务的配置文件
重启samba服务

在这里插入图片描述
写入:Hosts deny =172.25.254.18,则除了172.25.254.18,其他站点均能访问172.25.254.114这个服务器端的samba服务器
在这里插入图片描述
可以看到,172.25.254.18在登陆我这台samba服务器时网络请求被拒绝
在这里插入图片描述
而172.25.254.115这台主机可以正常登录我的smba服务器
在这里插入图片描述
白名单的设置
vim /etc/samba/smb.conf #编辑samba服务的配置文件
重启samba服务

在这里插入图片描述
写入:Hosts allow =172.25.254.18,则除了172.25.254.18,其他站点均不能访问172.25.254.114这个服务器端的samba服务器
在这里插入图片描述

在客户端进行测试,可以看到,172.25.254.18这台主机可以正常登录我的smba服务器

在这里插入图片描述
而172.25.254.115这台主机登陆我这台samba服务器时网络请求被拒绝
在这里插入图片描述

3.3 samba服务器共享目录

vim /etc/samba.smb.conf #查看samba的主配置文件,可以看到关于selinux的内容介绍
在这里插入图片描述
在做这个实验时,要打开selinux, 将selinux状态设置为enforcing, 重启虚拟机,selinux对samba文件系统共享的影响很大
在这里插入图片描述
查看火墙是否添加samba服务
在这里插入图片描述
getenforce #查看一下selinux的状态
在这里插入图片描述
如果selinux开启,必须更改samba共享目录的安全上下文

mkdir /westos_msb  #在samba服务器上面建立一个共享目录

在这里插入图片描述
查看目录的属性和westos用户id
在这里插入图片描述
vim /etc/samba/smb.conf #编辑配置文件
在这里插入图片描述

[HAHAHA]    #samba服务器对外共享的总名称
path=/westos_smb  #服务器实际共享的目录

在这里插入图片描述

在这里插入图片描述
在客户端测试,通过ssh root@172.25.254.18连接到18主机上,
smbclient -L //172.25.254.114 #以匿名用户的身份查看samba服务器共享的目录(-L表示list列出)
可以看到我们添加的共享名称
在这里插入图片描述
在samba服务器端

semanage fcontext -a -t samba_share_t '/westos(/.*?)?' #更改安全上下文
restorecon -RvvF /westos #刷新使其生效

可以看到,这个目录的安全上下文从default_t变成了samba_share_t
在这里插入图片描述

在测试端:
将/mnt解挂,然后重新将新添加的共享名称挂上去
在这里插入图片描述
在这里插入图片描述
可以看到,挂载成功
进入/mnt目录,想要创建文件,可以看到权限被拒绝
在这里插入图片描述
在samba服务器端
在配置文件中加入可写权限,重启服务
在这里插入图片描述
在这里插入图片描述
给本地文件系统777的权限
在这里插入图片描述
在测试端:
再次测试,发现可以创建文件
在这里插入图片描述
在测试端的/mnt/目录下,可以创建文件,具有读写权利

在这里插入图片描述
在samba服务器端
由于给本地文件系统777的权限过大,导致文件系统不安全,修改本地文件系统权限,因此给本地文件系统755的权限
在这里插入图片描述
给指定用户westos对/westos_smb/目录读写的权利
在这里插入图片描述
在测试端:
在测试段
在这里插入图片描述

smbclient  //172.25.254.114/HAHAHA -U westos 加上samba服务器的samba用户之后进入共享名称下的内容(不加-L就是直接进入samba共享)
进入的时候需要知道samba服务器的samba用户的密码
ls查看共享的内容
quit退出

在这里插入图片描述

3.4 samba系统目录的共享

在samba服务器端
在配置文件中编辑,加入/mnt, 共享系统级目录,重启服务
在这里插入图片描述
在这里插入图片描述

在测试端
umount /mnt/ #解挂,将/mnt空闲出来,再重新挂载
在这里插入图片描述

mount //172.25.254.114/HAHAHA  /mnt -o username=westos,password=westos #挂载
将samba服务器的共享目录挂载在本地目录/mnt下面,挂载的时候必须加上samba用户
df查看挂载
cd /mnt进入挂载目录,实际上进入了samba服务器的共享目录
ls查看
rm -rf *删除samba共享目录下的文件 (read-only 服务本身不允许)

在这里插入图片描述
在samba服务器端
查看samba指定用户登陆时可以进行操作的状态
在这里插入图片描述
将只读权限打开
在这里插入图片描述
在测试端
进入/mnt, 可以查看这个目录下的内容
在这里插入图片描述
不能新建文件,权限被拒绝,这是因为没有开可写权限
在这里插入图片描述
在samba服务器端
将可写权限打开
在这里插入图片描述
在测试端

再次尝试建立文件,可以看到,可以创建文件
在这里插入图片描述

3.5 samba目录的隐藏权限的修改

在samba服务器端
新建一个/lee目录,给满权限
在这里插入图片描述

vim /etc/samba/smb.conf #编辑samba服务的配置文件
browseable = no
重启samba服务

在这里插入图片描述

在这里插入图片描述
在测试端
先解挂,释放/mnt目录
在这里插入图片描述
再重新挂载
在这里插入图片描述
df 查看挂载成功
在这里插入图片描述
在这里插入图片描述
可以看到,WESTOS共享被隐藏起来了

3.6 samba的write list——指定用户可写共享目录

在desktop服务器端
mkdir /lee #新建目录
在这里插入图片描述
在这里插入图片描述

编辑配置文件,设置lee用户可写共享目录WESTOS, 重启samba服务
在这里插入图片描述
在这里插入图片描述
在server测试端
以lee的用户身份挂载共享目录,建立文件;westos用户身份挂载共享目录,尝试删除文件
先解挂
在这里插入图片描述
以lee用户身份挂载
在这里插入图片描述
可以查看共享目录和建立文件
在这里插入图片描述
在desktop服务器端可以查看/lee共享目录的安全上下文
在这里插入图片描述
在server测试端
退出共享目录,解挂
在这里插入图片描述
以westos用户身份挂载, 发现可以查看共享目录,但是不能删除文件
在这里插入图片描述

3.7 samba的write list = +lee(write list = @lee)——lee组内用户可写共享目录

在desktop服务端
编辑配置文件,设置lee组内用户可写共享目录WESTOS
在这里插入图片描述
在这里插入图片描述
设置westos用户属于lee组
在这里插入图片描述
在server测试端
先解挂
以westos用户身份挂载共享目录,可以对文件进行操作,查看,删除文件,建立文件

在这里插入图片描述

3.8 samba的valid users = @lee(valid users = +lee) ——允许登录samba客户端的组内名单

在desktop服务端

编辑配置文件,设置lee组内用户可登陆samba客户端,重启samba服务

在这里插入图片描述
在这里插入图片描述
修改westos为lee的组内用户
在这里插入图片描述

在server测试端

先解挂,再以lee用户身份挂载
在这里插入图片描述
可以查看共享目录的文件
在这里插入图片描述
解挂之后再次以lee组内用户westos用户的身份登录,也可以查看文件
在这里插入图片描述

3.9 samba的guest ok = yes—以游客身份登陆samba客户端

在desktop服务端
map to guest = bad user #编辑配置文件,设置游客身份可以登陆samba客户端,重启samba服务
在这里插入图片描述
在这里插入图片描述
在配置文件的共享目录中写入guest ok = yes
在这里插入图片描述
在server测试端
以游客身份登陆可查看共享目录中的内容
在这里插入图片描述
可挂载共享目录
在这里插入图片描述

3.10 samba的admin user = westos—以管理员身份登陆samba客户端

在desktop服务端
编辑配置文件,设置westos用户以管理员身份登陆,重启samba服务
在这里插入图片描述
在这里插入图片描述

在server测试端

以westos用户的身份挂载共享目录, 此时在desktop服务器端westos用户是管理员

在这里插入图片描述
df 可以查看到挂载成功

cd /mnt #切换到共享目录, ls #查看共享文件,建立文件fileyy,
ll查看文件的属性,发现虽然是以westos用户身份登陆的,但是建立文件的身份其实是root, 说明此时的westos用户就是系统管理员
在这里插入图片描述

4. samba的多用户挂载

此实验必须在客户端操作

在真机端
安装 cifs-utils 软件

在这里插入图片描述
编辑用户文件,写入用户名称和密码

在这里插入图片描述

在这里插入图片描述
设置文件权限为600,只有超级用户可读写,以保证用户文件的安全性
在这里插入图片描述
在desktop服务器端可以查看到,samba的配置文件此时仍然设置westos以管理员身份登录
在这里插入图片描述
在这里插入图片描述
使用用户文件,westos以管理员的身份挂载共享目录,切换到kiosk用户登陆挂载点对共享目录进行操作,可以查看文件

credentials=/root/smbpasswd  #指定挂载时所用到的用户文件
sec=ntlmssp  #认证方式为标准smb认证方式
multiuser   #支持多用户认证

用户在登陆samba客户端时的时候必须通过samba认证
在这里插入图片描述

在这里插入图片描述
kiosk用户对共享目录的操作被拒是因为samba服务的可写未开启,共享目录只有超级用户可写
在这里插入图片描述
在desktop服务器端的主配置文件中将writeable = yes 的注释放开,使其生效,并且重启samba服务
在这里插入图片描述
可以看到,/westos_smb/目录的权限为755
在这里插入图片描述

在真机中测试
先解挂
在这里插入图片描述
切换到kiosk用户,发现可以查看共享目录中的文件
在这里插入图片描述
为kiosk用户创建挂载用户lee
在这里插入图片描述
以验证smb加密的方式使其他用户能够挂载
在这里插入图片描述
可以看到, lee用户已经挂载成功
在这里插入图片描述
并且可以查看和建立文件
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值