RedHat Linux 8 中samba服务部署

samba服务简介

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
在windows系统中共享文件时用到的协议smb,


samba服务基本信息

  • 服务名称:smb.service

  • 安装包:samba;samba-common-tools, samba-client

  • 主配置目录: /etc/samba

  • 主配置文件:/etc/samba.conf

  • 安全上下文:samba_share_t

  • 端口:139;445
    在这里插入图片描述


samba服务安装与启用

  • dnf install samba-common-tools samba samba-client -y
    RedHat Linux 8 中samba服务部署_第1张图片
  • samba服务启动:systemctl enable --now smb
    在这里插入图片描述
  • samba服务在火墙添加启用:
    firewall-cmd --permanent --add-service=samba
    firewall-cmd --reload
    在这里插入图片描述

测试操作:
我们在windos系统中操作共享目录,右键点击目录选择属性
RedHat Linux 8 中samba服务部署_第2张图片
命令:smbclient -L //192.168.31.62/Study -U HEYUANXIANG,列出共享目录里的文件,-U 添加windos里的用户
RedHat Linux 8 中samba服务部署_第3张图片
命令:smbclient //192.168.31.62/Study -U HEYUANXIANG,进入共享的Study目录,会得到一个smb的控制台界面,可以在里面使用命令,也可以是使用 “!ls” 来查看我们本地的共享文件
RedHat Linux 8 中samba服务部署_第4张图片
命令:mount //192.168.31.62/Study /mnt -o username=HEYUANXIANG,password=6466,可以通过挂载共享的文件来查看文件
RedHat Linux 8 中samba服务部署_第5张图片
在windows系统中在开始菜单中搜索://192.168.31.62,linux主机的IP地址


samba服务用户建立

  1. amba用户必须是被地存在的用户
    在这里插入图片描述
  2. samba用户的建立
    smbpasswd -a redhat ,添加用户
    pdbedit -L ,查看用户列表
    RedHat Linux 8 中samba服务部署_第6张图片
    添加的用户想要被访问,需要更改sebool值
    在这里插入图片描述
    pdbedit -x redhat ,删除用户
    在这里插入图片描述

samba服务用户访问目录

windows系统下:\192.168.0.20 ,访问共享文件
如果想要切换需要访问的用户,在cmd控制界面中:
net use ,查看访问记录
net use * /del ,删除访问记录

在linux下执行:
smbclient //192.168.0.20/Study -U HEYUANXIANG,
RedHat Linux 8 中samba服务部署_第7张图片


samba服务共享目录

如何在linux中自定义去设定共享目录,
建立mkdir /testdir 目录,在目录中建立一些文件
RedHat Linux 8 中samba服务部署_第8张图片
更改目录的安全上下文:semanage fcontext -a -t samba_share_t ‘/testdir(/.*)?’
刷新安全上下文:restorecon -RvvF /testdir
RedHat Linux 8 中samba服务部署_第9张图片
编辑共享文件的配置:vim /etc/samba/smb.conf
写入需要共享的文件信息

[testdir]					#共享名称
        comment = testdir	#共享说明
        path = /testdir		#共享路径

写完保存退出,重启samba服务
在共享的主机里添加一个用户
在这里插入图片描述
使用另一台测试主机访问共享文件
RedHat Linux 8 中samba服务部署_第10张图片


samba服务的访问控制

访问控制我们需要在 /etc/samba/smb.conf 这个配置文件中写入相应的参数
配置参数:

hosts allow = IPADDR   只允许谁看
hosts deny = IPADDR  不允许谁看

IPADDR可以写多个空格隔开即可
如果在指定的目录下写入此配置,只对该目录生效
在这里插入图片描述
如果在 global 下写入此配置,表示对全局文件都生效
RedHat Linux 8 中samba服务部署_第11张图片

配置测试,写入配置 /testdir 目录不允许192.168.31.20 主机访问
在这里插入图片描述
保存退出,重启samba服务,测试主机再去访问就会被拒绝了
在这里插入图片描述


samba服务的常用配置参数

配置 说明
writable = yes 可写
write list = redhat 指定用户可写
write list = +redhat / @redhat 指定组可写
valid users = he 指定访问用户
valid users = +he / @he 指定访问组
browseable = yes / no 是否隐藏共享
map to guest = bad user 设定匿名用户,写到global全局设定中
guest ok = yes 允许匿名用户访问,必须和设定匿名用户同时出现
admin users = he 指定此共享的超级用户身份呢

这些参数的使用都是写在 /etc/samba/smb.conf 配置文件里

测试:

  • write list = redhat 指定 redhat 用户可写,为了防止文件系统对测试影响,设置 hmod 777 /testdir/
    RedHat Linux 8 中samba服务部署_第12张图片
    RedHat Linux 8 中samba服务部署_第13张图片
    在这里插入图片描述
    可写配置测试时,对于挂载的文件,需要重新挂载再测试

  • valid users = he ,允许he 用户访问
    RedHat Linux 8 中samba服务部署_第14张图片
    RedHat Linux 8 中samba服务部署_第15张图片

  • valid users = +he / @he,允许he这个组的可访问
    RedHat Linux 8 中samba服务部署_第16张图片
    在这里插入图片描述
    RedHat Linux 8 中samba服务部署_第17张图片

  • browseable = yes / no ,是否隐藏共享,no表示隐藏,yes表示不隐藏
    在这里插入图片描述
    RedHat Linux 8 中samba服务部署_第18张图片
    在这里插入图片描述
    RedHat Linux 8 中samba服务部署_第19张图片

  • map to guest = bad user
    guest ok = yes, 设定允许匿名访问
    RedHat Linux 8 中samba服务部署_第20张图片
    RedHat Linux 8 中samba服务部署_第21张图片

  • admin users = he ,指定访问用户身份为超级用户
    RedHat Linux 8 中samba服务部署_第22张图片
    在这里插入图片描述
    通过 he 用户建立的文件,在samba服务的主机里查看到用有人是超级用户,但是拥有组依然是he ,因为这个配置不能改变建立文件的拥有组
    RedHat Linux 8 中samba服务部署_第23张图片


samba的多用户挂载

在客户端如果用普通的挂载方式
在这里插入图片描述
切换到系统中的其他用户,没有用过用户验证的也可以访问samba服务
在这里插入图片描述
这样相对的安全性就很低,所以针对这种情况,
在服务端的主机里我们需要去做配置,使设置之外的用户没有通过验证时不能去查看共享文件,
首先安装程序 cifs-utils.x86_64
RedHat Linux 8 中samba服务部署_第24张图片
在客户端建立文件:vim /root/smbpass
在这里插入图片描述
执行挂载命令:mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //192.168.31.10/testdir /mnt

参数 说明
credentials=/root/smbpass 指定认证文件
sec=ntlmssp 指定认证类型
multiuser 支持多用户

挂载后通过验证的用户可以访问到文件,但是切换其他用户就无法查看了
RedHat Linux 8 中samba服务部署_第25张图片
如果其他用户也想查看共享文件,命令: cifscreds add -u redhat 192.168.31.10,加载认证,这里认证的redhat用户不是本机的,而是客户端里samba服务添加的用户
在这里插入图片描述
如果在执行命令时出现报错 “Key search failed: Key has expired” ,可以先执行 :
cifscreds add -u lee -d 192.168.31.10 ;
cifscreds clearall ,执行以上两条命令解决报错.


你可能感兴趣的:(Redhat,Linux,8,知识讲解,linux)