linux samba服务部署

samba服务简介

samba 是一个自由的开源软件套件,用于实现 Windows 操作系统与 Linux/Unix 系统之间的无缝连接及共享资源。
补充:
1.CIFS协议用于UNIX和windows间共享,而NFS协议用于UNIX和UNIX之间共享。
2.ftp、tftp和samba的区别
ftp:(1)ftp的目的是在Internet上共享文件而发明的一种协议,基于TCP/IP。世界上绝大多数系统都会有支持ftp的工具存在,通用性很强。(2)标准的ftp协议的登陆密码是用明文传输的,没有加密,这会有很大的安全隐患。(3)ftp提供交互式的访问(4)允许文件具有存取权限(5)它要存取一个文件,就必须先获得一个本地文件的副本,如果修改文件,也只能对文件的副本进行修改,然后再将修改后的文件副本传回到原节点。
tftp:(1)简单文件传送协议tftp(Trivial File Transfer Protocol)是一个小而易于实现的文件传送协议,tftp基于UDP数据报。(2)tftp只支持文件传输,不支持交互。(3)不进行身份验证
samba: samba是Unix系统下实现的 Windows文件共享协议-CIFS,它主要用于unix和windows系统进行文件和打印机共享,也可以通过samba套件中的程序挂载到本地使用。

samba基本信息

服务: smb
主配置目录: /etc/samba
主配置文件:/etc/samba/smb.conf
安全上下文: samba_share_t
端口: 139、445
(1)在虚拟机1中安装相关软件
安装samba-client时也会同时安装samba-common
在这里插入图片描述
(2)在windows(192.168.9.109)中共享资源
在这里插入图片描述
在这里插入图片描述

在开始菜单搜索处输入\ \192.168.9.109可以查看到所共享的文件
在这里插入图片描述
在这里插入图片描述
(3)在windows中添加用户及密码
没有用户和密码在linux中无法访问
在这里插入图片描述
(4)在虚拟机1(192.168.9.100)中访问
-L:直接列出
-U:指定用户
在这里插入图片描述
现在就可以直接使用共享文件了,比如可以使用put上传文件至windows,还可以使用del直接删除windows的文件。
ls:查看windows目录下内容
!ls:查看linux目录下内容
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用?可以查看我们能使用哪些命令
在这里插入图片描述
还可以使用挂载的方式使用共享文件,即/mnt下的文件都不是本机的文件,而是windows共享文件夹内的文件。
-o:指定选项
-t:指定文件系统类型
在/mnt下新建文件
在这里插入图片描述
删除/mnt下file文件
在这里插入图片描述

samba的安装与启用

yum install samba samba-common samba-client(已装) -y
systemctl enable --now smb
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload

(1)安装samba软件
在这里插入图片描述
(2)设定开机启动且立即启动
在这里插入图片描述
(3)配置防火墙
在这里插入图片描述
(4)在虚拟机1中测试本机
当需要使用root密码时直接回车,发现可以使用。
在这里插入图片描述

samba用户的建立

在linux中使用samba,需要建立samba用户,并且samba用户必须是本地存在的用户
实验步骤:

smbpasswd -a red 					#添加用户
pdbedit -L 							#查看用户列表
pdbedit -x red 						#删除用户

-a:指定用户
在这里插入图片描述
在这里插入图片描述
现在可以使用red用户登录samba了
在这里插入图片描述

samba用户访问家目录

(1)现在尝试在windows中访问虚拟机1
发现访问家目录被拒绝。
在这里插入图片描述
在这里插入图片描述
(2)修改sebool
注意将selinux改为警告模式也是可以的
在这里插入图片描述
在这里插入图片描述
我们还是在selinux为强制模式下,修改sebool。
-a:查看状态
-P:永久
在这里插入图片描述
windows可以正常访问了
在这里插入图片描述
(3)删除访问记录
登录成功的缓存会留在windows内,为了下次使用其他samba用户登录,我们要在cmd中清除访问记录。
发现输入\ \192.168.9.100不需要密码可以直接访问
在这里插入图片描述
因此要清除访问记录
在这里插入图片描述
重新输入\ \192.168.9.100发现需要输入用户名密码
在这里插入图片描述
(4)另外我们在虚拟机1中也可以成功访问家目录
在这里插入图片描述

samba服务共享目录

(1)新建目录及文件
在这里插入图片描述
(2)更改安全上下文
在这里插入图片描述
(3)编辑/etc/samba/smb.conf文件
lyueyuedir:共享名称
comment:共享说明(任意)
path:共享路径
在这里插入图片描述
在这里插入图片描述
(4)测试
此时目录已被共享出来在这里插入图片描述
使用red用户可以成功登录
在这里插入图片描述

samba的访问控制

hosts allow 192.168.9.101 192.168.9.
hosts deny
#虚拟机2(192.168.9.101)虚拟机3(192.168.9.7)
#192.168.9.表示这个网段
#当写到单独共享时对此共享生效
#当写到【GLOBAL】时对samba整体生效

1.设置白名单
(1)编辑虚拟机1/etc/samba/smb.conf
在这里插入图片描述
在这里插入图片描述
(2)测试
安装samba-client之后,发现虚拟机2可以正常访问,而虚拟机3不能访问。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
但仍可访问samba其他的东西
在这里插入图片描述
(3)再次修改/etc/samba/smb.conf文件
在这里插入图片描述
在这里插入图片描述
(4)在虚拟机3中测试
发现可以成功访问
在这里插入图片描述
补充: 之前的实验是局部设定,用户虽然不能访问/lyeuyuedir下的内容,但是仍然可以访问samba其他的内容,下来我们进行全局设定,查看一下效果。
(1)编辑虚拟机1/etc/samba/smb.conf文件
在这里插入图片描述
在这里插入图片描述
(2)在虚拟机3中测试
发现虚拟机3不能访问samba
在这里插入图片描述
2.设置黑名单
(1)编辑虚拟机1/etc/samba/smb.conf文件
在这里插入图片描述
在这里插入图片描述
(2)测试
发现虚拟机2不能访问,而虚拟机3正常访问。
在这里插入图片描述
在这里插入图片描述

samba的常用配置参数

writable = yes 						#可写
write list = red 					#指定用户(red)可写
write list = +red 				    #指定组可写
write list = @red				    #指定组可写
valid users = red 					#指定访问用户
valid users = +red|@red 			#指定访问组
browseable = yes|no 				#是否隐藏共享
map to guest = bad user 			#写到全局设定中
guest ok = yes 						#允许匿名用户访问
admin users = red 					#指定此共享的超级用户身份

命令展示:
准备
更改虚拟机1中/lyueyuedir目录权限
在这里插入图片描述
(1)writable参数
挂载/lyueyuedir至虚拟机2,删除文件失败。
在这里插入图片描述
编辑虚拟机1/etc/samba/smb.conf文件
在这里插入图片描述
在这里插入图片描述
发现在虚拟机2中可以删除、新建文件了
在这里插入图片描述
(2)write list=用户参数
编辑虚拟机1/etc/samba/smb.conf文件(分号和井号均可注释)
在这里插入图片描述
在这里插入图片描述
在虚拟机2中测试,发现red用户可写,而liu用户不可写。
在这里插入图片描述
(3)write list=+组参数
由(2)可知用户liu不可写,现在我们设置liu属于用户组red。
-G:添加组
usermod -G “” liu:删除组
在这里插入图片描述
更改参数
在这里插入图片描述
在这里插入图片描述
在虚拟机2中测试,发现用户liu可写。
在这里插入图片描述
(4)valid users=用户参数
更改参数
在这里插入图片描述
在这里插入图片描述
在虚拟机2中测试,发现用户red可以挂载,而用户liu不能挂载。
在这里插入图片描述
(5)browseable参数
这个参数即改即生效,不用重启服务。
更改之前在虚拟机2可以正常浏览
在这里插入图片描述
在虚拟机1中更改参数
在这里插入图片描述
发现在虚拟机2中不能浏览/lyueyuedir目录了
在这里插入图片描述
(6)guest参数(和valid users冲突)
这个guest参数是windows里的,linux里叫anonymous,这个guest参数linux不识别,所以我们要在全局中设定,将所有没有用户身份的人映射成guest。
在虚拟机1中更改参数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在虚拟机2中测试发现匿名用户可以访问
在这里插入图片描述
(7)指定共享身份
当我们使用挂载时,使用什么身份挂载,/lyueyuedir下文件的拥有者就是谁。
还原可写参数
在这里插入图片描述
在这里插入图片描述
在虚拟机2中挂载并新建文件file111
在这里插入图片描述
在虚拟机1/lyueyuedir下查看文件属性
在这里插入图片描述
我们现在在虚拟机1中更改参数,让在虚拟机2中使用red身份挂载并新建文件时使用超级用户身份,身份提升。
在这里插入图片描述
在这里插入图片描述
在虚拟机2中新建file222文件
在这里插入图片描述
在虚拟机1中查看/lyueyuedir下文件属性,发现file222的拥有者是root,而组身份是不会变的。
在这里插入图片描述
补充: 更改工作组名称
在虚拟机1中更改工作组名称之后,在客户端虚拟机2不会显示该名称,客户端显示的工作组是在客户端配置文件/etc/samba/smb.conf(这个文件是安装samba-client时同时安装的samba-common带来的)中配置的,我们使用windows可以查看到更改的工作组。
(1)在虚拟机1中更改工作组名称
在这里插入图片描述
在这里插入图片描述
(2)在虚拟机2中查看
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)在windows中查看
在这里插入图片描述

samba的多用户挂载

在客户端虚拟机2如果用普通的挂载方式,没有用过用户验证的人也可以访问虚拟机1samba服务。而这样会出现安全漏洞,我们需要让得到授权的用户才能访问samba服务。
(1)在虚拟机2中使用blue用户访问samba服务
在这里插入图片描述
(2)在虚拟机2中建立认证文件
在这里插入图片描述
只让超级用户可以看,这样更安全一些。
在这里插入图片描述
(3)在虚拟机2中安装cifs-utils
这个软件专门管理cifs文件系统的挂载
在这里插入图片描述
使用这个指令查看cifs系统挂载方式
在这里插入图片描述
(4)在虚拟机2中使用认证文件进行挂载
credentials:指定认证文件
sec:指定认证类型
multiuser:支持多用户(可以进行多用户的认证)
在这里插入图片描述
使用mount查看挂载信息
在这里插入图片描述
(5)在虚拟机2中测试
发现使用blue用户访问被拒绝,即必须使用虚拟机1的samba用户身份才能访问。
在这里插入图片描述
(6)在虚拟机2中使用虚拟机1samba用户身份访问
发现成功访问
在这里插入图片描述
补充: 当遇到下列类似报错情况时,使用如下命令即可成功访问。
-a:添加用户
-d:删除用户
cifscreds clearall:清空挂载用户
在这里插入图片描述
在这里插入图片描述
在虚拟机1中还可以查看使用的用户身份
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值