阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Samba服务权限配置案例

462次阅读
没有评论

共计 3520 个字符,预计需要花费 9 分钟才能阅读完成。

文件共享是在企业办公网络中经常用到的一项功能,如何设置并使用文件共享在技术上并不复杂,其中的问题主要集中在权限配置方面。
本文以世界技能大赛网络系统管理赛项中的一道题目作为案例,详细分析了如何利用 Samba 服务结合系统权限来完成各种复杂的权限设置,本文所采用的系统版本为 CentOS7。

1. 任务需求与分析

将 /share/archive 目录创建为 samba 共享,并完成下列要求:
① 共享名为 archive;
② zhangsan,lisi,wangwu 用户都能通过输入用户名和密码(Skills39)登录并上传文件;
③ 其他人不能访问共享目录;
④ zhangsan 能够查看和删除所有人的文件;
⑤ lisi 能够查看所有人的文件,但不能删除别人的文件;
⑥ wangwu 只能查看和删除自己的文件,不能查看和删除别人的文件;
在这 6 项需求中,第 1、2、3 项需求属于 Samba 服务的常规配置,实现起来较为简单;第 4、5、6 项需求主要是针对不同用户的权限设置,需要结合系统权限完成配置,实现起来较为复杂。下面就从这两个方面分别进行分析。

2. Samba 常规配置

在 CentOS7 系统中所提供的 Samba 版本为 4.6.2,软件默认没有安装,首先执行下列命令安装、启动服务,并将之设为开机自动运行。

# yum install samba
# systemctl start smb
# systemctl enable smb

Samba 的配置文件为“/etc/samba/smb.conf”,下面在配置文件中定义共享,相关设置项如图 1 所示。

Samba 服务权限配置案例

对设置项的解释:
 [archive]:指定共享名,也就是客户端在访问时所看到的共享目录名字。
 path:指定共享目录在服务器中对应的实际路径,要求必须使用绝对路径。
 valid users:只允许指定的 Samba 用户访问该共享。
 writable:共享目录是否允许 Samba 用户写入。这里虽然设置了所有 Samba 用户都可以写入,但由于“valid users”设置项限制了只有指定的三个用户可以访问共享,因而实际上也只有这三个用户可以写入。
配置完成后,保存退出。
下面创建共享目录,并将其权限设为 777。

# mkdir -p /share/archive
# chmod 777 /share/archive

接下来再创建 Samba 用户。由于 Samba 用户要以系统用户为基础,因而需要先创建出系统用户之后,再将其添加为 Samba 用户。这里为了进行测试,额外再创建一个 Samba 用户 maliu。

# useradd -s /sbin/nologin zhangsan
# useradd -s /sbin/nologin lisi
# useradd -s /sbin/nologin wangwu
# useradd -s /sbin/nologin maliu

下面将这些系统用户添加为 Samba 用户,同时需要为每位用户指定密码。需要注意的是,Samba 用户的密码与系统用户的密码没有任何关系。

# smbpasswd -a zhangsan
# smbpasswd -a lisi
# smbpasswd -a wangwu
# smbpasswd -a maliu

最后,可以通过执行“pdbedit -L”命令列表显示目前系统中已经存在的所有 Samba 用户。

# pdbedit -L
zhangsan:1009:
lisi:1010:
wangwu:1011:
maliu:1012:

至此,Samba 的常规配置就完成了,执行“systemctl restart smb”命令重启服务,使配置生效。然后可以在 Windows 或 Linux 客户端进行访问测试,用户 zhangsan、lisi、wangwu 都可以访问共享,并上传文件,但用户 maliu 没有访问共享的权限。具体测试过程从略。

3. 权限设置

下面再来完成第 4、5、6 项要求,这也是在这整个任务需求中最复杂的部分。将这三项需求进行归纳,核心问题主要有两个:是否允许删除别人的文件,是否允许读取别人的文件。下面分别来解决这两个问题。

3.1 限制删除别人的文件

要完成这个任务,首先需要明确一个问题:在 Linux 系统中,用户需要具有哪种权限,才可以将一个文件删除。
Linux 系统规定,用户只要对某个目录具备“写入(w)”权限,那么便可以修改或删除该目录中的任何文件,而不论这个文件的权限是什么。
也就是说,用户能否删除一个文件,取决于用户对文件所在的目录是否具有写入权限。由于我们将共享目录 /share/archive 的系统权限设为了 777,因而此时任何用户都可以删除该目录中的任意文件。但在任务 5 和任务 6 中,又明确要求用户 lisi 和 wangwu 不能删除别人的文件,所以这里自然就想到了 sbit 粘滞位权限。
sbit 权限的作用是:当目录被设置了 sbit 权限之后,即便用户对目录有“写入(w)”权限,也不能删除该目录中其他用户的文件,每个文件只有该文件的所有者和 root 用户才有权将其删除。
因而下面需要为共享目录 /share/archive 设置 sbit 权限:

# chmod o+t /share/archive/
# ll -d /share/archive/
drwxrwxrwt. 2 root root 26 4 月  28 20:32 /share/archive/

这样,所有的 Samba 用户都可以向共享目录中上传文件,但是只能删除自己的文件,而无法删除别人的文件。
但如此一来,又无法满足任务 4 的需求了,用户 zhangsan 也无法删除别人的文件。到这里,思路好像进入了死胡同。
其实关于 sbit 权限,还有一条规则是:对于目录的所有者,可以不受 sbit 权限的限制,他可以删除该目录中所有用户的文件。
只要明白了该规则,问题自然就迎刃而解,我们只需将共享目录的所有者更改为 zhangsan 即可。

# chown zhangsan /share/archive/
# ll -d /share/archive/
drwxrwxrwt. 2 zhangsan root 26 4 月  28 20:32 /share/archive/

至此,关于能否删除文件的需求就全部解决了。

3.2 限制读取别人的文件

同之前一样,要完成这个任务首先需要明确,用户具有哪种权限才可以读取文件。这个问题相对比较简单,在 Linux 系统中,用户只要对文件本身具有“读取(r)”权限,那么便可以查看文件中的内容。
综合任务 4、5、6 这三项需求,用户 zhangsan 和 lisi 可以读取所有人的文件,而用户 wangwu 则只能读取自己的文件。下面是具体的实现过程。
首先在 Samba 的配置文件“/etc/samba/smb.conf”中定义用户上传文件的默认权限,这里需要用到“create mask”设置项,将用户上传文件的默认权限设置为 0640,也就是说只有文件的所有者以及所属组用户才具有读取权限。相关设置项如图 2 所示。

Samba 服务权限配置案例

设置完成后,同样需要执行“systemctl restart smb”命令重启服务生效。
接下来我们只需使得 zhangsan 和 lisi 能够成为每个上传文件的所属组的成员即可,但是默认情况下,用户所上传文件的所属组都是与该用户同名的私有组,如果要使得所有用户上传文件的所属组都能够是同一个指定的用户组,那么就需要为共享目录设置 SGID 权限。
SGID 权限的作用是:如果针对目录设置 SGID,则在该目录内所建立的文件或子目录的所属组,将统一被自动设置成此目录的所属组。
比如我们在系统中创建一个名为 admin 的用户组,并将其设为共享目录 /share/archive/ 的所属组,然后再对 /share/archive/ 目录设置 SGID 权限,这样用户在共享目录中上传的所有文件,其默认的用户组都统一被设置成了 admin。

# groupadd admin
# chown :admin /share/archive/
# chmod g+s /share/archive/
# ll -d /share/archive
drwxrwsrwt. 2 zhangsan admin 60 4 月  29 10:01 /share/archive

然后再将用户 zhangsan 和 lisi 都加入到 admin 组即可。

# gpasswd -a zhangsan admin
# gpasswd -a lisi admin

最后,分别以用户 zhangsan、lisi、wangwu 的身份在目录中上传文件,其默认权限如图 3 所示。

Samba 服务权限配置案例

至此,这个综合案例中的所有任务需求都已全部完成。对于 Linux 系统中的绝大多数服务,用户在使用这些服务时的最终权限基本都是由两个因素综合决定的:一个因素是在服务配置文件中所做的相关设置,另一个因素则是系统权限。因而作为系统运维人员,必须要熟知服务配置和系统权限,这样方能更好地满足各种不同的实际工作需求。

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3520字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7984118
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

颠覆 AI 开发效率!开源工具一站式管控 30+大模型ApiKey,秘钥付费+负载均衡全搞定

  颠覆 AI 开发效率!开源工具一站式管控 30+ 大模型 ApiKey,秘钥付费 + 负载均衡全...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装2026年最强个人助理ClawdBot、完整安装教程

如何安装 2026 年最强个人助理 ClawdBot、完整安装教程 一、前言 学不完,根本学不完!近期,一款名...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛NAS-2:飞牛配置RAID磁盘阵列

星哥带你玩飞牛 NAS-2:飞牛配置 RAID 磁盘阵列 前言 大家好,我是星哥之前星哥写了《星哥带你玩飞牛 ...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...
开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

  开源 MoneyPrinterTurbo 利用 AI 大模型,一键生成高清短视频! 在短视频内容...
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...