NFS网络文件系统

本文详细介绍了在Linux系统中如何配置和管理Samba服务,包括安装、添加用户、设置访问控制以及解决SELinux带来的影响。同时,也阐述了NFS服务的安装、共享配置以及客户端的挂载方法。此外,还讲解了iSCSI设备的共享和客户端的挂载过程,包括创建共享、设定访问权限以及永久挂载的方法。
摘要由CSDN通过智能技术生成


需要服务端和客户端两台主机。

1.samba服务

smb=Server Message Block Sum
cifs=Common Internet File System Microsoft
Windows共享文件时用到的协议smb

2.samba基本信息

服务启动脚本:smb.service
主配置目录:/etc/samba
主配置文件: /etc/smb.conf
安全上下文:samba_share_t
端口:139 445
安装包:
samba samba-common

3.samba的安装与启用

samba的安装:

 dnf install samba -y
 dnf install samba-client -y
 dnf install samba-common.noarch -y      #安装samba服务主体,用到的配置文件和客户端
 systemctl enable --now smb.service        #开启服务
 firewall-cmd --permanent --add-service=samba       #允许通过火墙
 firewall-cmd --reload
4.添加samba用户

必须是本地真实存在的用户

	[root@westos_storage samba]smbpasswd -a westos
	New SMB password:
	Retype new SMB password:
	Added user westos.              ##添加samba用户,密码为登陆密码,和westos登录系统密码无关

添加不存在的用户需要先新建用户,否则会添加失败:

	useradd -s /sbin/nologin zhang -M
	smbpasswd -a zhang 
	pdbedit -L  #查看smb用户
	pdbedit -x zhang  #删除smb用户
	smbclient -L //172.25.254.136 -U zhang  #登陆访问samba用户

登陆速度慢的话可以做本地解析:

vim /etc/hosts.conf
///
172.25.254.103  westos_storage.westos.org
///
5.selinux对samba服务的影响
cd /etc/samba/
cp smb.conf.example smb.conf -p  #重新生成配置文件
smbclient //172.25.254.103/westos -U westos #因为selinux所以用户不能浏览自己的家目录
setsebool -P samba_enable_home_dirs on   #调整selinux中的sam波尔值使用户可以访问家目录
mkdir /westos_share
ls -ld /westos_share   #建立共享目录并查看权限

vim /etc/samba/smb.conf
///
315         [westos_share]
316         comment = westos share
317         path = /westos_share

/// 
system restart smb.service   #重启服务

[root@westos_storage samba]# smbclient -L //172.25.254.136 -U westos
Enter MYGROUP\westos's password: 

Sharename       Type      Comment
---------       ----      -------
westos_share    Disk      westos share                              ####共享成功
IPC$            IPC       IPC Service (Samba Server Version 4.11.2)
westos          Disk      Home Directories
SMB1 disabled -- no workgroup available

touch /westos_share/file{1..3}    #最后访问到这些文件代表成功
用户自己建立的目录要通过smb共享时安全上下文必须指定为:samba_share_t

semanage fcontext -a -t samba_share_t '/westos_share(/.*)?'
restorecon -RvvF /westos_share/

测试:

	[root@westos_storage samba]# smbclient  //172.25.254.136/westos_share -U westos
	Enter MYGROUP\westos's password: 
	Try "help" to get a list of possible commands.
	smb: \> ls
	  .                                   D        0  Tue Aug 10 12:01:47 2021
	  ..                                  D        0  Tue Aug 10 11:44:17 2021
	  file1                               N        0  Tue Aug 10 12:01:47 2021
	  file2                               N        0  Tue Aug 10 12:01:47 2021
	  file3                               N        0  Tue Aug 10 12:01:47 2021   #表示成功分享

查看selinux对samba的限制

[root@westos_storage samba]# getsebool -a | grep samba
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> on
samba_export_all_ro --> off        #selinux将不再对samba服务访问文件时的安全上下文进行限制
samba_export_all_rw --> off		#selinux将不再限制samba对文件写的安全上下文进行限制
samba_load_libgfapi --> off
samba_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
tmpreaper_use_samba --> off
use_samba_home_dirs --> off
virt_use_samba --> off
6.samba的访问控制
vim /etc/samba/smb.conf
///
91 hosts allow  172.25.254.236    #当写到单独共享时只对此共享生效,此时只有172.25.254.236可以访问
 或 hosts deny   #当写到global时对整个samba整体生效
///

###此位置设定的访问控制为全局访问控制,影响本台smb服务的所有共享

7.samba的常用配置参数

writable = yes #可写
write list = westos #指定用户可写
write list = +westos #指定组的成员可写
write list = @westos
valid users = zhang #指定访问用户
valid users = +zhang|@zahng #指定访问组
browseable = yes|no #是否隐藏共享

vim /etc/samba/smb.conf
///
315         [westos_share]
316         comment = westos share
317         path = /westos_share
318         hosts allow =172.25.254.236   #表示westos_share这个目录只能被236主机访问,此访问设定只有	westos_share

319         browseable = no   #隐藏共享目录
320	    valid users = westos    #此共享只能通过samba用户westos登陆
///

匿名挂载:

 vim /etc/samba/smb.conf
///
118         map to guest = bad user          #把没有身份的用户映射为guest账号
318         browseable = yes		
319         guest ok = yes		#此共享允许guest用户访问
///

systemctl restart smb.service

客户端:
smbclient //172.25.254.136/westos_share #建立访问
mount //172.25.254.136/westos_share /mnt/ -o username=guest #匿名挂载
在这里插入图片描述###### 8.samba的自动挂载
客户端:dnf install autofs -y

vim /etc/auto.master
///
 8 /westos /etc/auto.share
///

vim /etc/auto.share
///
samba		 -fstype=cifs,username=westos,password=westos        ://172.25.254.136/westos_share
#挂载点的相对路径     #挂载参数                                            #挂载服务器ip及资源共享
///

vim /etc/autofs.conf 
///
15 timeout = 5 #设置挂载资源在5秒以上无任何程序使用则自动卸载     默认是300秒
///

[root@westoslinux ~]# cd /westos/samba

在这里插入图片描述

##退出目录5秒钟后会自动卸载

9.samba的多用户挂载

在客户端如果用普通挂载方式,没有通过用户认证的人可以访问samba服务

dnf install cifs-utils -y
 mount //172.25.254.136/westos_share /mnt/ -o username=zhang,password=westos

#如果用户挂载smb资源时需要输入账号和密码,如果直接书写密码可以通过历史被其他人看到,所以我们写到文件中并设定安全权限

vim /root/sabpass  ##认证文件
///
username=westos
password=westos
///
chmod 600 /root/smbpass

mount -o credentials=/root/smbpass,multiuser,sec=ntlmssp //172.25.254.136/westos_share /mnt/
credentials=/root/smbpass    #指定认证文件
multiuser            #支持多用户,当挂载时添加此参数,没有通过认证的用户不可以使用smb上的资源
sec=ntlmssp          #指定认证类型,即用户使用到的认证方式
chmod 660 /root/smbpass

[root@westoslinux ~]# su - westos
Last login: Tue Aug 10 16:20:27 CST 2021 on pts/1
[westos@westoslinux ~]$ ls /mnt
ls: cannot access '/mnt': Permission denied       

[westos@westoslinux ~]$ cifscreds add -u westos 172.25.254.136
Password: 
[westos@westoslinux ~]$ ls /mnt
ls: cannot access '/mnt': Permission denied             ###当密码输入错误时,访问仍然被拒绝,此时需要清空密码认证
[westos@westoslinux ~]$ cifscreds clearall
[westos@westoslinux ~]$ cifscreds add -u westos 172.25.254.136   #重新访问
Password: 
[westos@westoslinux ~]$ ls /mnt             
file1  file2  file3
10.nfs+autofs

在服务机中:

dnf install nfs-utils.x86_64 -y
systemctl enable --now nfs-server.service 
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=mountd
firewall-cmd --permanent --add-service=rpc-bind          #安装与启用
firewall-cmd --reload

nfs配置:

 vim /etc/exports
///
/westosdir              *(ro,sync)
///
 exportfs -rv  #使共享策略生效

测试:
客户端:

[root@westoslinux ~]# showmount -e 172.25.254.136
Export list for 172.25.254.136:
/westosdir *

服务端:

vim /etc/exports
///
/westosdir              *(ro,sync) 172.25.254.236(rw,sync,anonuid=1000,anongid=1000)
///

表示客户端在挂载时使用的用户为id1000,而不是默认的nobody
测试:

客户端:

[root@westoslinux ~]touch /mnt/file4

服务端:

[root@westos_storage ~]ls -l /westosdir/
 -rw-r--r--. 1 westos westos 0 Aug 11 10:15 file4

vim /etc/exports
///
 /westosdir              *(ro,sync) 172.25.254.236(rw,sync,no_root_squash)  
///
#172.25.254.236(rw,sync)表示除236以外的主机只读共享,对236主机读写共享  no_root_squash表示当客户端使用超级用户进行nfs资源挂载后沿用自己的root用户身份到服务器中

客户端:[root@westoslinux ~]# touch /mnt/file5

服务端:

[root@westos_storage ~]# ls -l /westosdir/			
-rw-r--r--. 1 root   root   0 Aug 11 10:17 file5

客户端自动挂载:

dnf install autofs -y  #在客户端安装自动挂载服务
vim /etc/auto.master   #编辑主挂载策略文件
///
9 /westos /etc/auto.nfs 
///

vim /etc/auto.nfs    #编辑子策略文件,不存在,需自行建立
///
nfs    -rw   172.25.254.136:/westosdir
///

systemctl restart autofs.service  

cd /westos/nfs
df

会显示挂载成功:
在这里插入图片描述

11.iscsi

设备共享
服务端:
给服务端添加一个硬盘:virt-manager–>Add Hardware–>storage–>设定大小为5G–>finish
在shell中 fdisk -l 查看:
在这里插入图片描述

dnf install targetcli -y
systemctl enable --now target

targetcli

/backstores/block create  westos:storage1  /dev/vdb  #设定/dev/vdb在此软件中的别名
/iscsi create iqn.2021-08.org.westos.starage1     #建立对外的共享名称,iqn的命名方式,iscsi的限定名称
iscsi/iqn.2021-08.org.westos.starage1/tpg1/luns create /backstores/block/westos:storage1 #把共享名称和内部指定设备关联
iscsi/iqn.2021-08.org.westos.starage1/tpg1/acls create iqn.2021-08.org.westos:westoskey   #为共享设备设定访问key
exit

在这里插入图片描述

在客户端:

dnf install iscsi-initiator-utils.x86_64 -y
systemctl enable --now iscsi
iscsiadm -m discovery -t st -p 172.25.254.136  #执行此命令在服务端火器中需要开启3260 端口

在这里插入图片描述

vim /etc/iscsi/initiatorname.iscsi #在此文件中指定共享key
///
InitiatorName=iqn.2021-08.org.westos:westoskey       #此处为服务其中设定的共享key
///

iscsiadm -m node -T iqn.2021-08.org.westos.starage1 -p 172.25.254.136 -l   #挂载共享设备

此时子系统中会出现一个新的硬盘,大小等于服务其中共享设备的大小,即共享成功。
在这里插入图片描述
磁盘永久挂载:
客户端:
网络设备因为网络通信的缘故可能发生名称变化,所以推荐挂载时使用设备的id进行设备指定
blkid 查看id
当挂载网络设备时/etc/fstab文件的挂载策略是优选与网络启动和iscsi服务的,但是网络设备必须在网络和iscsi服务启动后才能识别,所以系统无法识别系统导致启动失败
所以在指定设备在挂载时先启动网络和iscsi服务后生效

vim /etc/fstab
///
UUID=d0c3d997-f8b8-4ec9-af2e-9b8e0b0195c9  /mnt                   xfs    defaults _netdev        0 0
///

重启之后df,自动挂载成功

驱除iscsi :
客户端:

vim /etc/fstab  #删除设备自动挂载信息
umount /mnt
tree /var/lib/iscsi/   #在客户端读取到的服务器的所有数据存放目录
iscsiadm -m node -T iqn.2021-08.org.westos.starage1 -p 172.25.254.136 -u    #退出登录设备就消失了,但是数据还在,重启iscsi就会自动出现
iscsiadm -m node -T iqn.2021-08.org.westos.starage1 -p 172.25.254.136 -o delete   #删除客户主机中此网络设备的数据
systemctl restart iscsid.service

此时共享设备已不存在

服务器中删除:

targetcli 
ls
clearconfig confirm=True

在这里插入图片描述清除成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值