RHCE课程-RH253Linux服务器架设笔记三-Samba服务器配置(2)

简介:
上季我们介绍了samba服务器的安装,常用配置文件,还有匿名登陆的samba服务器
今天我们主要学习基于用户名的访问控制
其实samba的访问控制参数都不是很多,只要是你灵活运用,把samba自带的访问控制,防火墙,文件权限等等结合使用,就能搭建功能强大的samba服务器
上季已经说了share级别的安全,今天我们就讲user级别了,把我们下面的任务规划一下
1.一个公司要求一个公共的交换文件服务器,都可以访问并写入,但是不可以删除和修改其他用户的文件
2、技术部需要一个文件服务器,用于存放常用的软件工具,所有人都可以访问,但是只有技术部的人可以写入 
主要就是上面两个功能来开展,我们来分析下
一个samba服务器,要实现上面两个功能
用我们以前学过的知识,你们觉得可以有哪些方案?
用samba服务器实现上面的功能,有两种规划方案
使用域和user级别都可以,但是测试域比较麻烦,还要活动目录,所以我们就使用user级别
有人可能会问为什么不可以使用share级别,如果全局使用share,局部需要用户登陆的话,登陆框是灰色的,不能输入用户名,这个是不是samba服务器设置的一个bug,我也说不清楚,反正我们就尽量不这样设计吧
如果使用user模式,应该需要两个目录,一个是交换目录,一个是技术部的目录,交换目录都可以写入,所以权限要777,但是都可以写入的话,就可以删除别人的文件,所以我们要加个冒险位,限制只有root和文件所有者才能删除,第一个题目完成了
第二个题目就更简单了,所有人可以访问,但是只有技术部的可以写,我们只需要在局部设置write list = @jishubu 就可以了,如果想要更安全的话,还可以设置目录权限是775,让目录属于技术部组
下面我们开始测试吧,建立两个目录,一个是exchange,一个是jishubu,都建立在/下吧,然后改变他们的权限
image
然后添加用户test1 和添加jishubu组,把test1加入到技术部组,最后把/jishubu的所属组改成技术部
image
我们还要建立一个公共的用户,提供所有用户登陆samba服务器使用
useradd smbtest
image
到这里,我们的工作就算完成了,下面我们就开始配置我们的服务器
请大家打开samba服务器的主配置文件 
vim /etc/samba/smb.conf
第一步打开selinux,如果你没有打开的话
复制29行的语句,然后在终端里面执行
image
我们架设服务器的环境是,selinux强制
system-config-selinux修改bool值的
RHEL4的selinux只保护了40多个进程,RHEL5的selinux保护达到了200个进程吧,具体数值记不得了,selinux都是安装了的
setenforce 1,然后getenforce 查看
image
如果是enforcing 处于强制状态就算打开了
selinux有三种状态
image
ENFORCING,就是处于保护状态,selinux会禁止危险的动作并记录日志
permissive  是只记录日志
disabled 关闭 
用setup设置吧
好了,我们继续,然后设置目录的上下文
复制39行的内容,修改要共享目录的上下文,只复制冒号后面的部分
image
chcon -t samba_share_t /exchange/ 
chcon -t samba_share_t /jishubu/
image
改变上下文都使用使用的chcon -t
设置selinux都是setsebool -P 
selinux的相关知识,大家看看吧
RHCE考试,要求一般selinux是处于强制状态的
workgroup 设置工作组 
server string 服务器描述 
username map 用户名映射,默认没有,等会我们会讲
interfaces 如果服务器有多块网卡,可以设置你想开放的网卡,一般不管,默认都开放
hosts allow 设置可以访问服务器的网段,注释表示不限制
image
使用user安全模式security = user 
image
其他的全局配置都不管了,直接跳到最后,开始定义共享目录
exchange的定义
[exchange] 共享目录名字
comment 目录描述
path 共享目录的路径
public 所有用户可以访问
writeable 所有用户可以写入
printable 不是打印机
write list 在这个位置是没有意义的 
image
public和valid users 不能同时使用,这样public没效果
如果writables 和write list同时使用,应该是以writable 起作用,但是最好,避免歧义,我们删除write list字段哈~
这样第一个目录就OK了
下面写第二个目录的定义
image
在samba服务器里表示一个组可以使用@组名 也可以使用 +组名
一个简单samba服务器配置就算完成了,保存退出配置文件
下面我们建立samba用户
建立samba用户的前提是,/etc/passwd文件里要有这个用户名,我们才可以建立成samba用户
我们刚才建立了smbtest和test1两个用户
现在我们把他们建立成samba用户
建立用户的时候要使用 -a 参数,如果改samba用户的密码,就不用加-a参数了
image
下面我们重新启动服务器,开始测试
image
开始测试
image
我们先使用smbtest用户
image
image
三个目录都可以看见,smbtest是用户的家目录,这个是自己私有的空间
大家测试下可以进入jishubu和exchange,然后分别往这两个目录写入文件
image
image
测试成功,下面换test1用户,看能不能在技术部写入文件
删除刚才的用户登陆缓存
image
然后使用test1登陆
image
image
jishubu目录可以写入
image
然后我们去删除smbtest用户的文件试试
image
测试成功
image
用户写入的文件权限是744
################Michael分割线###################
我们再讲两个小的应用
1、控制用户写入的文件权限为750,也就只有用户自己可以RWX,用户的所有组可以读
2、使用虚拟用户名,提高samba服务器的安全性 
分析第一个问题,大家觉得怎么实现?
第一个问题使用 
directory mask = 750 
create mask = 750  
set GID
组合就可以实现
第二个问题就是刚才你们看见的username map = /etc/samba/smbuser 参数
我们来实现
image
提示一下: 
directory mask 和directory mode 功能都一样,当然 create 也是 
directory mask 是控制用户创建的目录权限
create mask 是控制用户创建的文件权限 
这个参数只在用户是图形界面有效
刚才是1777 现在是3777 添加一个set gid
image
重启下服务
image
好了,我们测试下
image
发现了吗,这个文件的权限和刚才的不一样了,完全是按照我们要求来的
image
这样就只有自己和所有组可以读取了,其他用户没有任何权限
建立目录也一样
image
image
我们测试完成第二个功能
加入这样一行参数 username map =  ,然后保存退出
image
vim /etc/samba/smbusers 
image
左边是真正的用户名字,右边是虚拟的名字,你想怎么写,就怎么写,最好是系统里面没有的用户名字
image
好了,测试
密码是对应ID的密码
image
image
####################Michael分割线#######################





本文转自redking51CTO博客,原文链接:http://blog.51cto.com/redking/141325 ,如需转载请自行联系原作者
相关文章
|
2月前
|
安全 Java Linux
Websoft9:为开发者打造的高效 Linux 服务器面板
Websoft9 是一款以开源应用部署与管理为核心的服务器面板,采用“环境即服务”模式。它通过运行环境标准化、自动化配置、安全融合和资源管理四个方面实现平台与环境的深度协同。支持多语言框架预集成、云原生组件整合,提供 200+ 应用模板一键部署,并具备全流程安全防护和统一资源监控能力,助力开发者高效管理和扩展应用环境。
75 0
|
11天前
|
Ubuntu Linux 网络安全
在Linux云服务器上限制特定IP进行SSH远程连接的设置
温馨提示,修改iptables规则时要格外小心,否则可能导致无法远程访问你的服务器。最好在掌握足够技术知识和理解清楚操作含义之后再进行。另外,在已经配置了防火墙的情况下,例如ufw(Ubuntu Firewall)或firewalld,需要按照相应的防火墙的规则来设置。
62 24
|
7天前
|
运维 监控 中间件
Linux运维笔记 - 如何使用WGCLOUD监控交换机的流量
WGCLOUD是一款开源免费的通用主机监控工具,安装使用都非常简单,它可以监控主机、服务器的cpu、内存、磁盘、流量等数据,也可以监控数据库、中间件、网络设备
|
1月前
|
安全 Linux
阿里云linux服务器使用脚本通过安全组屏蔽异常海外访问ip
公网网站可能会遭受黑客攻击导致访问异常,使用此脚本可以屏蔽掉异常IP 恢复访问。也可自行设置定时任务定期检测屏蔽。
159 28
|
1月前
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
116 28
|
1月前
|
JavaScript Linux Python
在Linux服务器中遇到的立即重启后的绑定错误:地址已被使用问题解决
总的来说,解决"地址已被使用"的问题需要理解Linux的网络资源管理机制,选择合适的套接字选项,以及合适的时间点进行服务重启。以上就是对“立即重启后的绑定错误:地址已被使用问题”的全面解答。希望可以帮你解决问题。
110 20
|
2月前
|
Ubuntu Linux
Linux系统管理:服务器时间与网络时间同步技巧。
以上就是在Linux服务器上设置时间同步的方式。然而,要正确运用这些知识,需要理解其背后的工作原理:服务器根据网络中的其他机器的时间进行校对,逐步地精确自己的系统时间,就像一只犹豫不决的啮齿动物,通过观察其他啮齿动物的行为,逐渐确定自己的行为逻辑,既简单,又有趣。最后希望这个过程既能给你带来乐趣,也能提高你作为系统管理员的专业素养。
133 20
|
2月前
|
存储 运维 监控
深度体验阿里云系统控制台:SysOM 让 Linux 服务器监控变得如此简单
作为一名经历过无数个凌晨三点被服务器报警电话惊醒的运维工程师,我对监控工具有着近乎苛刻的要求。记得去年那次大型活动,我们的主站流量暴增,服务器内存莫名其妙地飙升到90%以上,却找不到原因。如果当时有一款像阿里云 SysOM 这样直观的监控工具,也许我就不用熬通宵排查问题了。今天,我想分享一下我使用 SysOM 的亲身体验,特别是它那令人印象深刻的内存诊断功能。
|
2月前
|
Linux 虚拟化 Docker
Linux服务器部署docker windows
在当今软件开发中,Docker成为流行的虚拟化技术,支持在Linux服务器上运行Windows容器。流程包括:1) 安装Docker;2) 配置支持Windows容器;3) 获取Windows镜像;4) 运行Windows容器;5) 验证容器状态。通过这些步骤,你可以在Linux环境中顺利部署和管理Windows应用,提高开发和运维效率。
254 1
|
8天前
|
缓存 Linux 数据安全/隐私保护
Linux环境下如何通过手动调用drop_caches命令释放内存
总的来说,记录住“drop_caches” 命令并理解其含义,可以让你在日常使用Linux的过程中更加娴熟和自如。
59 23