RHCE第7章:samba文件共享

系列文章目录

RHCE第0章:RHCE开始前的准备
RHCE第1章:Web服务器(上)
RHCE第1章:Web服务器(下)
RHCE第2章:DNS服务
RHCE第3章:DHCP服务器
RHCE第4章:Firewall服务
RHCE第5章:SELinux
RHCE第6章:nfs网络文件系统
RHCE第7章:samba文件共享


前言

这里简单说一些概念,百度来的。
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
简单来说,samba可以实现linux/unix/windows之前的数据传输,所以我在虚拟机上又装了一个win7系统,但可以两台虚拟机就是无法连接,这个博主在想一想。


一、samba的安装于配置

我现在拿chao1作为samba作为服务器端来共享文件。

1.samba安装

yum install samba

启动服务,注意服务名称是smb
在这里插入图片描述

systemctl start smb

2.配置防火墙

配置防火墙

firewall-cmd --permanent --add-service=samba
firewall-cmd --reload 

3.创建共享文件

现在造几个文件夹啊,然后随便写的文件来做实验。

mkdir /share1
mkdir /share2
mkdir /share3
touch /share1/file{1..9}
touch /share2/file{11..19}
touch /share3/file{111..119}

然后创建几个系统用户来进行登陆访问。

useradd user1
useradd user2
useradd user3

4.添加samba用户

这里要使用smbpasswd命令,我们可以用-h来看一下。
在这里插入图片描述
说几个常用的。
-a是添加
-x是删除
-d是禁用
-e是解禁
添加的用户必须是已经创建好的系统用户我刚刚已经创建过了。

在这里插入图片描述
添加的时候需要设置samba密码,我就和用户名设置成一样的。
可以用以下命令查看结果。

pdbedit -L

在这里插入图片描述

5.编辑配置文件

vim /etc/samba/smb.conf

在这里插入图片描述
这里有一些写好的配置文件,不建议更改,直接后边追加就可以了。
在后边追加如下内容。
在这里插入图片描述

[s1]
        comment = this is share1
        path=/share1
        public=no
        browseable=yes
        writable=yes

[share2]
        comment = this is share2
        path=/share2
        public=no
        browseable=no
        writable=no
        write list =user1
        
[share3]
        comment = this is share3
        path=/share3
        public=no
        browseable=yes
        writable=no
        write list = user1
        valid users = user1

这里来解释一下,这三段分别是三个文件夹啊的权限控制。
[]里边是名称,随便写,
comment=介绍(随便写)
path=文件路径
public=no 不能匿名访问,要用samba用户
browseable=yes/no 能否看到文件夹
writable=yes/no 能否写入文件
write list = user1 特殊写权限
valid users = user1 特殊访问权限。
这样说还是比较空洞,用实验比较好理解。
重启服务。
本来这里想用win7演示一下,可以不知道什么原因连接不上,直接用chao2吧。

二、客户端的配置的使用

1.客户端安装

如果只要访问samba服务器而不共享自己的数据,只要装两个文件就行。

yum install samba-client cifs-utils

可以用以下命令查看要访问的服务器共享目录

smbclient -L //192.168.100.1

在这里插入图片描述
这里没有share2,因为share2的browseable=no,所以无法查看到文件夹。
连接共享文件夹。
用user3

smbclient -U user3 //192.168.100.1/s1 

在这里插入图片描述
查看一下
在这里插入图片描述
可以发现这里无法查看,这是因为selinux对文件有限制,我们现在修改chao1

2.添加权限

getsebool -a | grep samba

查看到需要把指定权限打开.
在这里插入图片描述

setsebool -P samba_enable_home_dirs on

这还不够,我们还需要改一下share文件的上下文。将他改成samba的。
在这里插入图片描述

semanage fcontext -a -t samba_share_t '/share1(/.*)?'
semanage fcontext -a -t samba_share_t '/share2(/.*)?'
semanage fcontext -a -t samba_share_t '/share3(/.*)?'
restorecon -FRv /share1/
restorecon -FRv /share2/
restorecon -FRv /share3/

在这里插入图片描述
然后再用chao2访问
在这里插入图片描述
前边对share1的设置时允许所有人读写
在这里插入图片描述
尝试上传和下载
在连接前的同一个目录随便写个文件.

在这里插入图片描述
然后用put命令上传
在这里插入图片描述
上传失败,说明chao1依旧有限制,这是为什么呢?
在这里插入图片描述
share1的属主和属组都是root,user3权限不够。
给权限就可以了。

3.上传下载

setfacl -m u:user3:rwx /share1/

在这里插入图片描述
这就是添加成功。
然后再用chao1查看一下。
在这里插入图片描述
为了这个实验方便,我就一次性把权限都给出去了。
在这里插入图片描述

下载文件。

在这里插入图片描述
在这里插入图片描述
现在我们退出尝试访问share3
在这里插入图片描述
直接被拒绝,这是为什么呢。
在这里插入图片描述
前别设置share3只有user1有权限访问。
所以咱们现在用user1访问。
在这里插入图片描述
可以正常访问。

三、samba远程挂载

samba共享后一些命令和Linux不太一样,那么能不能直接把共享文件直接当作一个磁盘挂载到本机上呢?

1.直接挂载

mkdir /mnt/shar1
mount -t cifs -o username=user1,password=user1 //192.168.100.1/s1 /mnt/shar1/

直接将其当作一个磁盘就可以直接挂载,这样所有Linux命令就都可以使用了。

在这里插入图片描述

2.开机挂载

先把他卸载掉。
在这里插入图片描述
编写fstable
在这里插入图片描述

//192.168.100.1/s1      /mnt/share1     cifs    username=user1,password=user1 0 0

在这里插入图片描述
这里还是有一些不安全,密码直接写到文件里,不好,现在卸掉,继续编写。
在这里插入图片描述
我们可以将密码写到另一个文件里,然后让系统开机去读取文件。

在这里插入图片描述

vim /etc/chaofile

在这里插入图片描述
挂载检测,没问题。
在这里插入图片描述

总结

本次samba分项目就到这里,深入挖掘应该还有多用户分,可惜博主还没搞懂,暂时先放下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值