目录
实验:Samba服务的简单配置
实验环境:Windows11、RHEL 8
背景介绍:
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
一、安装Samba服务
前提要进行相关源的配置,源配置完成后,尝试执行以下命令:
yum -y install samba
安装完成后, 可以通过启动服务和设定开机自启来验证是否安装完成。
运行 smb服务
systemctl start smb
停止smb服务
systemctl stop smb
设置smb服务开机自启
systemctl enable smb
查看smb服务运行状态
systemctl status smb
启动服务后,查看其状态 !
二、配置文件
执行以下命令进行相关编辑samba配置文件!
vi /etc/samba/smb.conf
文件内容如下:
这里主要给它添加一个共享文件夹配置 ,在文件尾加入以下内容!
[share]
comment = sl的linux上的共享目录
path = /home/share
read only= no
valid users = Administrator
browsable = yes
writable = yes
comment :这个是注释
path :这个是共享文件夹的路径
read only :设置是否只读
valid users :设置允许访问该共享文件夹的用户
browsable :设置是否可浏览
writable :设置是否可写
至此保存退出,配置文件完成,具体的详细如何配置,待下回分解。
三、用户添加
先创建一个可供访问的Linux用户,使用以下命令!
添加用户
useradd sunlan
修改用户密码
passwd sunlan
运行结果如下:
创建完成后,我们要创建Samba服务的用户,这里建立的用户只能是存在的Linux用户,如果不存在相关Linux用户,它会报错创建失败。
smbpasswd -a [用户名]
如果用不存在的Linux用户去创建,则会出现如下结果!
至此创建Samba服务的用户创建完成!还需进行共享文件夹的创建,执行以下指令。
mkdir /home/share
因为是共享文件夹,所以要允许所有人都能访问,所有要将其权限设置成777。
chmod 777 /home/share
设置完成后,要重启samba服务器!
systemctl restart smb
四、实验测试
Windows按Win+R,输入你samba服务器的ip地址。
等待片刻后,会跳出访问凭证输入窗口。
输入刚刚创建的Samba用户账号和密码,进入共享文件夹!
这里发生了我遇到的第一个问题,共享文件夹显示拒绝访问!
这是因为之前的配置文件,配置了允许用户只有一个Administrator,可以往后添加允许用户,或者将该语句删除即可(删除后使用的是黑名单,所有默认都可以访问)。
解决该问题后,又遇到如下问题报错。在这个错误下,自己的家目录和共享目录都无法访问,可能和Linux的安全策略有关。
setenforce 0
解决方法:对SELinux(Security-Enhanced Linux)进行配置,它主要会控制进程对资源的访问权限,防止系统中的程序以不当方式访问文件、目录和其他对象,其有三种模式如下所示:
Enforcing(强制模式):
- SELinux在此模式下会强制执行安全策略,任何违反策略的操作都会被阻止,并记录日志。
Permissive(宽松模式):
- 在此模式下,SELinux不会阻止操作,而是记录下可能的违反,没有实际的限制。这对于调试策略或逐步实施安全措施非常有用。
Disabled(禁用模式):
- SELinux完全被禁用,不进行任何安全策略检查。
我们要将其改为宽松模式,让它不会阻止其访问共享文件夹。
SELinux中默认运行模式为强制模式,将其设置为禁止模式,或者设置为宽松模式。下面是用了流编辑器进行相关的替换,当然你也可以直接修改/etc/setlinux/config文件,将其改为宽松模式或禁止模式。
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
查看其运行模式
getenforce
最后验证是否可以访问共享文件夹了 ,如果还不行可能是防火墙的问题,应关闭防火墙后再次尝试。以下我是访问成功了。