对samba服务复杂权限配置小记

看了一个比赛的题目,感觉也挺有意思的,比平常配置的权限稍微有点不同,并且稍微有点复杂。我们慢慢来看一看:
? 题目:创建samba共享/share/archive目录,要求:
? 共享名为archive;
? 1、zhangsan,lisi,wangwu用户都能通过输入用户名和密码(Skills39)登录并上传文件;
? 2、zhangsan能够查看和删除所有人的文件;
? 3、lisi能够查看所有人的文件,但不能删除别人的文件;
? 4、wangwu只能查看和删除自己的文件,不能查看和删除别人的文件;
? 5、其他人不能访问共享目录。

安装服务什么的就不在说了,相信你们应该都非常熟练了。

一、创建共享目录
首先创建共享目录并将目录设置到最大权限
mkdir -p /share/archive
chmod 777 /share/archive

注意:这里虽然将目录的权限设置到最大,但是我们可以通过修改配置文件权限来限制用户对这个目录的权限。例如某smb用户对目录有写入的权限,但是配置文件中这个用户没有可写的权限,这个用户还是不能写。
我们可以来测试一下,验证zhangsna用户是否有写入的权限

在配置文件中让zhangsna用户不可写。
在客户端验证

Zhangsna用户写入文件失败
所以我认为配置文件中的权限优先级高于目录权限的有限级。
二、回归正题,根据题目要求修改服务配置文件。
1、Vim /etc/samba/smb.conf
在文件的最后添加以下几行:

具体说明解释:
(1)Comment=archive共享文件的一个说明,有没有没有关系
(2)Path=/share/archive指定共享目录的路径,必须正确无误
(3)Valid users=zhangsan,lisi,wangwu指定可以用密码登陆的用户,
(4)writable=yes.保证三个用户拥有上传的权限

到这里的配置我们通过配置(3)已经满足1、6的限制条件:指定zhangsan,lisi,wangwu用户可以密码登陆,并拒绝其他这可以访问。
张三登陆成功:

Lisi登陆成功

Wangwu登陆成功

Maliu登陆失败,拒绝访问:

三、然后分析2,3,4的题目要求:
1、第二个条件:zhangsan能够查看和删除所有人的文件;
从这条限制可以看出,zhangsan用户对着个共享目录有着绝对的权限。所以我们要将共享目录的所有者给zhangsan
Chown zhangsan /share/archive

2、然后验证张三用户能否查看和删除所有人的文件。
首先,使用lisi,wangwu用户分别上传文件b.txt,c.txt。

然后,客户端登陆zhangsan用户,去查看这两个文件并删除

成功查看文件内容并删除文件。

? lisi能够查看所有人的文件,但不能删除别人的文件;
? wangwu只能查看和删除自己的文件,不能查看和删除别人的文件;

3、这两条还要求lisi,wangwu用户没有删除别人上传的文件的权限,只能删除自己的文件。所以达到这个目的我们可以使用sbit权限

Sbit权限:SBIT(Sticky Bit)目前只针对目录有效,对于目录的作用是:当用户在该目录下建立文件或目录时,仅有自己与 root才有权力删除。也就是说文件是谁的谁就是老大,其他人只能靠边看着。

(1)设置sbit:
Chmod +t /share/archive

当设置好sbit的时候,在用户权限显示里面的最后,出现t。
(2)客户端验证用户只能删除自己的文件,不能删除别人的文件。

a.txt,b.txt,c.txt分别对应zhangsan,lisi,wangwu用户上传的文件。可以看到lisi用户只能对自己的文件为所欲为,对别人的文件却不能怎样。再看wangwu也是同样如此:

4、再看题目条件,lisi拥有读所有人的权限,而wangwu只能读自己的。这又该怎么办呢。这个地方我思来想去,用了很长时间。突然我看到配置文件中其他的共享目录中拥有这样的一行配置create mask=。这是给用户创建文件的时候,默认将文件的权限改为create mask等于的值。
(1)如果没有这一行,用户上传的文件是什么权限,我们看一下:

可以看到,在other上面的权限有可以读的权限,所以,当每个用户上传完文件的时候,其他用户都可以读。
所以我们可以通过create mask=的值来限制用户读取的权限,这样不就杜绝了wangwu用户读其他人的文件

(2)修改配置文件,添加create mask=0740

create mask=0740,表示文件所有者用户读写执行的权限,用户组有读的权限,其他用户没有任何权限
(3)我们重新通过这些用户上传文件,并查看上传后的文件权限

(4)验证wangwu只能查看自己的文件:

(5)但是当我们这样设置以后,lisi,zhangsan还有读取所有人文件的权限吗?:

很显然不能读取别人的权限,因为lisi,zhangsan分别对于另外两人是个外人。那么为了满足要求,我们又如何让他可以读取所有人的文件。

既然是外人,我们就让lisi分别成为zhangsan,wangwu的亲人,让zhangsan成为lisi,wangwu的亲人。
我们知道每个文件的所属组是有读的权限的。

所以将zhangsan,lisi分别加入到他们的亲人组中。这样lisi可以读取zhangsan,wangwu的文件,zhansan可以读取lisiwangwu的文件

(6)所以我们可以将lisi分别加入到zhangsan组合wangwu组。
Gpasswd -a lisi zhangsan
Gpasswd -a lisi wangwu

分别将zhangsan添加到lisi,wangwu组中

(7)这时候我们再来验证zhangsan,lisi 是否拥有读取所有文件的权限



成功读取。

综合验证:
1、所有人拥有上传权限

2、 zhangsna能查看和删除所有人的权限


3、验证lisi能查看别人文件,不能删除别人文件

4、验证wagnwu只能看自己的和删除自己的

总结:
为了满足要求,也就几条关键的权限设置,分别是:
(1)目录所有者要是zhangsan;
(2)设置目录权限SBIT
(3)配置文件添加create mask=0740;
(4)将zhangsan加入到lisi,wangwu用户组中
(5)将lisi加入到zhangsan,wangwu用户组中

原文地址:http://blog.51cto.com/12332766/2124983

时间: 2024-10-16 03:21:34

对samba服务复杂权限配置小记的相关文章

CentOS 6.7 samba服务安装和配置

CentOS 6.7 samba服务安装和配置 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务. SMB是基于客户机/服务器型的协议,因而一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端,例如,一台在Linux 下已经架设好的Samba服务器,wi

[译]SQL Server分析服务的权限配置

简介: 本文介绍如何配置SSAS数据库和cube相关维度的安全设置. 相对数据引擎来说,在Management Studio中配置分析服务的安全设置基本没什么区别.但是也会有一些限制,比如SSAS的权限配置都是围绕角色进行的,其次,角色的成员必须是基于windows或者ad环境的,SQL Server用户(比如sa)是无法使用的.还有,权限是无法直接授予给windows或者ad用户或者组的,这些用户或者组必须填加到角色中才可以.另外,如果UAC处于打开的状态,那么比如要以"Run as Admi

SQL Server分析服务的权限配置

 简介: 本文介绍如何配置SSAS数据库和cube相关维度的安全设置. 相对数据引擎来说,在Management Studio中配置分析服务的安全设置基本没什么区别.但是也会有一些限制,比如SSAS的权限配置都是围绕角色进行的,其次,角色的成员必须是基于windows或者ad环境的,SQL Server用户(比如sa)是无法使用的.还有,权限是无法直接授予给windows或者ad用户或者组的,这些用户或者组必须填加到角色中才可以.另外,如果UAC处于打开的状态,那么比如要以"Run as A

5、SAMBA服务二:配置实例

①:SAMBA服务一:参数详解 ②:SAMBA服务二:配置实例 5.2.3.Samba共享目录配置实例 原文地址:https://www.cnblogs.com/-xuan/p/10542392.html

samba服务无权限访问

在CentOS上配置samba服务好几天了,总是出现在windows资源管理器中无法访问的问题: 开始总以为是我的smbpasswd -a root命令没有将用户加进去,之后添加/删除重复了不知多少次,还是不管用,把linux和windows的防火墙都关闭了之后,还是不管用,便全面开始samba的服务配置,一步步操作下来, 结果使用如下命令时,发现了无权限的原因了: 一访问共享目录就NT_STATUS_ACCESS_DENIED listing,找到原因总是困难的,原因知道后就好解决了,原来是S

Ubuntu系统samba服务安装和配置

开发主机和虚拟机之间文件交换除了vmtools之外还可以利用samba服务.在windows下将虚拟机中的文件夹映射为windows下的一个盘.方便文件的操作.samba的安装和配置 1.安装samba软件 sudo apt-get install samba 然后会自动解决依赖关系,自动安装samba 2.配置samba服务 修改/etc/samba/smb.conf文件 在文件的最后添加 [my] comment = Public Stuff path = /home/mingyuan/sa

CentOS 7下Samba服务安装与配置详解

centos7.5系统下进行 yum -y install samba samba-client systemctl start smb nmbps -ef | grep -E 'smb|nmb'netstat -tunlp | grep -E 'smbd|nmbd'mkdir /mnt/datauseradd -s /sbin/nologin mtcat /etc/passwd | grep mtsmbpasswd -a mt[输入两遍密码123456]chown mt.mt /mnt/dat

Samba服务权限配置案例

文件共享是在企业办公网络中经常用到的一项功能,如何设置并使用文件共享在技术上并不复杂,其中的问题主要集中在权限配置方面.本文以世界技能大赛网络系统管理赛项中的一道题目作为案例,详细分析了如何利用Samba服务结合系统权限来完成各种复杂的权限设置,本文所采用的系统版本为CentOS7. 1. 任务需求与分析 将/share/archive目录创建为samba共享,并完成下列要求:① 共享名为archive:② zhangsan,lisi,wangwu用户都能通过输入用户名和密码(Skills39)

Centos6.5以下Samba服务配置

一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件.后来微软又把 SMB 改名为 CIFS(Common Internet File System),即公共 Internet 文件系统,并且加入了许多新的功能,这样一来,使得Samba具有了更强大的功能