Linux下的SMB文件共享---基于文件系统的存储分离

Linux下的SMB文件共享—基于文件系统的存储分离

1.什么是samba

在平时我们电脑中保存的文件,想要传给别人的话一般都会发邮箱来完成,如果我们想要共享一个磁盘的内容,也可以用之前学过的lftp apache等服务来上传,但这些服务都在基于上传的主机开启的基础上。而SMB服务可以实现存储分离。
举个例子:平时我们使用微信,换一个手机,但微信的联系人信息并不会因为换了新手机登陆而随之消失,而我们再次用自己的张号登陆时,联系人信息是仍然存在的。
SMB就会实现这样的功能,我们上传想要共享的文件,其他人随时只要登陆就可以看到那些文件,并且上传文件后退出登陆,下次登陆时仍能看到那些文件。

2.搭建samba服务器

- 在服务端:(提供共享磁盘)

yum install samba samba-common samba-client.x86_64 -y	##注意:samba只提供启动服务,而samba的配置文件都在samba-common里,所以两个都要安装
rpm -qa | grep samba									##查看安装情况
cd /etc/samba
vim smb.conf 											##编辑配置文件
322         [WESTOS]		
323         comment = share local directory				##说明,自定义
324         path = /sambashare							##要共享的目录
325         writable = yes								##可上传
mkdir /sambashare	
chmod 777 /sambashare
getenforce												##disabled
systemctl start smb										##开启服务
systemctl enable smb									##服务开机启动
netstat -antlupe | grep smb								##查看端口
firewall-cmd --add-service=samba						##设定火墙
useradd -s /sbin/nologin -M westos						##添加westos用户 只有smb服务用 -M不建立家目录
id westos												##查看westos
smbpasswd -a westos										##建立smb用户westos设定密码
useradd -s /sbin/nologin -M lee
smbpasswd -a lee
smbpasswd -a student
pdbedit -L												##查看smb用户
pdbedit -x student										##在smb用户中删除student

注意:要建立smb用户的前提是本地中存在此用户
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
- 在客户端:

yum install samba-client -y		
rpm -qa | grep samba
smbclient -L //172.25.254.136 -U						##登陆smb
smbclient //172.25.254.136/WESTOS -U lee				##用lee用户登陆/WESTOS目录
!ls														##列出当前目录中内容

mount //172.25.254.136/WESTOS /mnt -o username=lee,password=123	##挂载共享目录到/mnt
cd /mnt
touch file{1..10}										##此时在服务端的sambashare目录中出现10个文件
umount /mnt

注意:用smbclient命令登陆时,里面有很多命令不能使用,不方便。为了更加方便了可以把它挂载到/mnt,使用完再卸载即可。

在这里插入图片描述
在这里插入图片描述

3.autofs自动挂载卸载

- 理解autofs意义

在使用smb文件共享时,每次使用都要去挂载卸载,相对来说比较麻烦
如果我们设定它开机自动挂载到/mnt,那么如果我们不想使用它还要手动卸载
autofs就可以完美的解决这个问题,实现我们进入目录时自动挂载,当我们退出该目录时自动卸载

- 如何实现autofs

设定:

yum install autofs -y
systemctl start autofs						##开启autofs服务
systemctl enable autofs						##autofs开机启动
vim /etc/auto.master						##编辑策略文件
/mnt    /etc/auto.samba						##挂载目录 挂载参数文件
vim /etc/auto.samba
WESTOS  -fstype=cifs,username=lee,password=123 ://172.25.254.136/WESTOS	##挂载的最终位置 挂载参数 挂载设备
systemctl restart autofs					##重启服务

在这里插入图片描述
测试:

cd /mnt				
ls									##进入/mnt目录中ls查看目录为空
cd WESTOS							##却可以进入WESTOS(autofs实现了进入自动挂载)
df									##查看挂载情况

在这里插入图片描述

注意:这里默认退出目录后300s自动卸载,为了看到实验效果我们可以改一下默认等待时间

vim /etc/sysconfig/autofs
TIMEOUT=3
systemctl restart autofs			##重启服务

测试:

cd /mnt/WESTOS						##进入该目录
df									##自动挂载成功
cd									##退出目录,等3s后df查看到已经卸载

在这里插入图片描述

3.smb文件共享全局设定

cd /etc/samba
vim smb.conf			##再次文件中修改参数

- 更改名称

vim smb.conf
89         workgroup = WESTOS

测试:

smbclient -L //172.25.254.136 -U lee
Domain=[WESTOS]

- 黑白名单设定

黑名单:

96 ;       hosts deny = 172.25.254.236

测试:

smbclient -L //172.25.254.136 -U lee	##236不能登陆,其他主机可以登陆

在这里插入图片描述
白名单:

97 ;       hosts allow = 172.25.254.236

测试:

smbclient -L //172.25.254.136 -U lee	##只有236主机可以登陆

在这里插入图片描述

-匿名用户登陆

126         map to guest = bad user
327         guest ok = yes

测试:

smbclient  //172.25.254.136/WESTOS							##匿名用户可以登陆
mount //172.25.254.136/WESTOS /media/ -o username=guest		##匿名用户挂载

在这里插入图片描述

在这里插入图片描述

-是否可以查看

327         browseable = yes|no		##yes表示可以查看

在这里插入图片描述
测试:
设定为yes时,在远程主机中登陆

smbclient -L //172.25.254.136 -U lee
WESTOS          Disk      share local directory ##可以查看到WESTOS

设定为no时,在远程主机中登陆

smbclient -L //172.25.254.136 -U lee		##查看不到WESTOS,但不代表不能用,只是隐藏起来了

在这里插入图片描述

-指定可以登陆用户

指定用户:

329        valid users = westos		##指定westos用户可以登陆

在这里插入图片描述
测试:

mount //172.25.254.136/WESTOS /mnt -o username=westos,password=123		##westos用户可以挂载
mount //172.25.254.136/WESTOS /mnt -o username=lee,password=123			##lee用户不能挂载

在这里插入图片描述
指定用户组:

329        valid users = @westos	##指定westos用户组成员可以登陆
usermod -G westos lee				##将lee添加到westos组里

在这里插入图片描述
在这里插入图片描述
测试:

mount //172.25.254.136/WESTOS /mnt -o username=lee,password=123			##lee用户可以挂载

在这里插入图片描述

-指定可写用户

指定用户:

326 ;       writable = yes				##先把可写的设置注释掉
328         write list = lee			##设定lee用户可写

在这里插入图片描述
测试:

mount //172.25.254.136/WESTOS /mnt -o username=lee,password=123	
cd /mnt
touch file								##lee用户可以创建文件

mount //172.25.254.136/WESTOS /mnt -o username=westos,password=123	
cd /mnt
touch file								##westos用户不能创建文件
touch: cannot touch ‘file’: Permission denied

在这里插入图片描述
指定用户组:

328         write list = +lee			##设定lee组的成员可写
usermod -G lee westos					##将westos添加到lee组里

在这里插入图片描述
在这里插入图片描述
测试:

mount //172.25.254.136/WESTOS /mnt -o username=lee,password=123	
cd /mnt
touch file111							##westos用户可以创建文件

在这里插入图片描述

-指定用户使用root权限

330         admin users = lee					##指定lee用户使用root权限

在这里插入图片描述
测试:

mount //172.25.254.136/WESTOS /mnt -o username=lee,password=123	
cd /mnt
touch haha										##用lee用户创建文件haha
ll
-rw-r--r--. 1 root 1002    0 Nov 30 00:52 haha	##所有人是root

在这里插入图片描述

4.samba的多用户挂载

-理解多用户挂载

我们在使用autofs自动挂载的时候,用root用户,只要进入目录就会实现自动挂载
此时我们切换到student用户

cd /mnt/WESTOS
ls											##可以访问文件内容

在这里插入图片描述
这是十分不安全的。因为我并没有设定允许它访问
所以我们需要提高它的安全性,让通过认证的用户才可以访问

- 部署samba多用户挂载

yum install cifs-utils -y
vim /etc/auto.samba							##编辑策略文件
WESTOS  -fstype=cifs,credentials=/root/smbpass,sec=ntlmssp,multiuser ://172.25.254.136/WESTOS	认证文件 认证方式 多用户挂载
vim /root/smbpass							##编辑认证文件	
username=lee
password=123
systemctl restart autofs					##重启服务

在这里插入图片描述
测试:
此时切换到student用户:

cd /mnt/WESTOS
ls: reading directory .: Permission denied			##没有权限
cifscreds add -u westos 172.25.254.136				##添加westos用户认证后,ls才可以查看到文件内容

注意:此处添加的westos用户是之前在设定smb用户时存在的,不是随意添加出来的
在这里插入图片描述

5.selinux开启情况下的samba

首先设定服务端selinux状态为enforcing

- 共享自建目录时的设定

当selinux为enforcing时,用测试端

cd /mnt/WESTOS
ls: reading directory .: Permission denied

在这里插入图片描述
在服务端设定安全上下文:

ls -Zd /sambashare
semanage fcontext -a -t samba_share_t '/sambashare(/.*)?'			##修改安全上下文
restorecon -RvvF /sambashare

在这里插入图片描述
再次在测试端ls就可以查看到文件内容了
在这里插入图片描述

- 共享本地目录时的设定

在服务端:设定共享目录文本地目录/mnt

cd /etc/samba
vim smb.conf 
325         path = /mnt

测试:

cd /mnt/WESTOS
touch file
touch: cannot touch ‘file1’: Permission denied	##无法上传文件

在这里插入图片描述
在服务端设定布尔值:

getsebool -a | grep samba
setsebool -P samba_export_all_rw on			##设定开启全部读写权限

在这里插入图片描述
再次在测试端新建文件成功
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值