网络文件系统
smb服务基础设置(smb是windows和linux之间实现共享)
getenforce ##首先确保selinux是打开的
dnf search samba
dnf install samba-common.noarch samba.x86_64 samba-client.x86_64 -y ##安装服务端和客户端
smbpasswd -a li ##添加用户到samba用户列表中,这个用户必须是本地用户
pdbedit -L ##列出已添加用户
pdbedit -x li ##删除samba用户列表中指定用户
systemctl enable --now smb.service
firewall-cmd --permanent --add-service=samba
firewall-cmd --reload
smbclient //192.168.43.222/li -U li ##报错 ,selinux默认不允许访问自己的家目录
getsebool -a | grep samba
setsebool -P samba_enable_home_dirs on ##打开访问家目录的权限
smbclient //192.168.43.222/li -U li ##访问成功
共享自己的目录
mkdir /ljx ##新建需要共享的目录
cd /ljx
touch westosfile{1..10} ##建立共享文件
cd /etc/samba
mv smb.conf smb.conf.bak ##将原始的主配置文件备份
mv smb.conf.example smb.conf ##使用例子为主配置文件
semanage fcontext -a -t samba_share_t '/ljx(/.*)?' ##更改安全上下文,否则selinux开启访问收到限制
restorecon -RvvF /ljx ##刷新一下
vim /etc/samba/smb.conf
[LJX]
comment = local dir ljx
path = /ljx ##编写在文本的最后
systemctl restart smb
切换到客户端100主机
smbclient -L //192.168/ljx -U li ##查看共享
测试机:
共享系统级目录
服务器:
vim /etc/samba/smb.conf
[MNT]
comment = /mnt dir
path = /mnt
##因为selinux的原因,系统级目录不能改安全上下文
getsebool -a | grep samba
setsebool -P samba_export_all_ro on ##开启后,smb不再受安全上下文的影响,此时安全上下文不符合的也可以.
systemctl restart smb
测试,客户端:
smbclient //192.168.43.222/mnt -U li
测试机
##默认情况下允许任何人访问我服务器所共享的文件和目录
共享目录访问权限的设置
服务器:
vim /etc/samba/smb.conf
90 hosts allow=192.168.43.222 ##共享目录只能192.168.43.222访问
systemctl restart smb
91 hosts deny = 192.168.43.222 ##共享目录只是禁止192.168.43.222访问
上述的两种黑白名单的设置都是全局的
局域黑白名单设置:
将命令添加在所要限制的共享目录的命令下面,只对这个共享目录生效,其余的共享目录还是要看全局的设置
hosts allow=192.168.43.222 ##只允许此IP的主机登录
valid users = lee ##只允许此用户登录
valid users = @lee ##允许此用户的组成员登录
valid users = +lee ##允许此用户的组成员登录
测试:使用挂载命令,看是否可以挂载
mount -o username=li,password=westos //192.168.43.222/LJX /mnt
服务器:
##设定只有222可以访问
共享目录写的权限的设定
ls -ld /mnt ##查看权限
chmod 777 /mnt ##开启全部权限,让所有人对此共享目录可以写
vim /etc/samba/smb.conf
writable = yes ##在想要写的共享目录下面写入此命令,就可以在挂载后对共享目录写入文件
write list =li ##在想要写的共享目录下面写入此命令,就可以限制某一个用户在此共享目录写
mount -o username=li,password=westos //192.168.43.222/LJX /mnt
##测试。上述设置,可以使用挂载测试,然后切入挂载点,看是否能够写入东西
browseable = no ##隐藏共享文件,默认权限是打开
smbclient -L //192.168.43.222 ##使用此命令查看共享文件进行测试
guest OK =yes ##匿名用户可以访问这个共享
map to guest =bad user ##这是一个映射,相当于访问不需要密码,需要写到全局里面
mount -o username=guest //192.168.43.222/LJX /media
##匿名用户挂载用于测试上面的命令
多用户挂载(这是一个在客户端上的实验)
在客户端100中:
mount -o username=li,password=westos //192.168.43.222/ljx /media ##在超级用户下挂载
##在任何一个用户下面都可以查看挂载目录的内容,此时我们需要设定使得都必须持有smb认证去进行查看
dnf install cifs-utils -y ##安装
vim /root/smb_auth ##把用户名和密码放在一个文件里面,切换的时候自动去识别这个文件
username =
password=
chmod 600 /root/smb_auth ##更改权限
mount //192.168.43.222/ljx /media -o credentials=/root/smb_auth,multiuser,sec=ntlmssp
##挂载
此时在其他用户中如果想查看挂载的文件
cifscreds add -u westos 192.168.43.222 ##输入此命令,并且输入密码就可以认证查看
cifscreds clear -u westos 192.168.43.222 ##如果输错密码,需要进行删除,然后再使用上面的命令认证查看
NFS(linux和Unix之间实现共享)
-
nfs的启用
服务端: dnf install nfs-utils -y ##客户端和服务端的软件是同一个 systemcrl restart nfs-server systemctl enable --now nfs-server ##开机就启动 firewall-cmd --permanent --add-service=rpc-bind firewall-cmd --permanent --add-service=mountd firewall-cmd --permanent --add-service=nfs firewall-cmd --reload firewall-cmd --list-all 客户端: mount 192.168.43.222:/ljx /media
-
共享文件设定
vim /etc/exports /ljx *(ro) ##挂载在客户端之后,可读其共享文件 exportfs -rv ##刷新,不用重启服务 vim /etc/exports /ljx *(rw) ##挂载在客户端之后,可写其共享文件 exportfs -rv vim /etc/exports /ljx *(rw,no_root_squash) root ##root用户挂载不转换身份 exportfs -rv vim /etc/exports /ljx *(rw,anonuid=1000,anongid=1000) ##指定新建用户身份 exportfs -rv sync 更新生成后同步数据到服务器,节省服务器资源 async 时间同步数据到服务器,数据完整性不会因为段点啥的同步上来,非常消耗服务器资源
客户端:
服务器:
autofs自动挂载文件系统服务的部署
挂载了,但是并没有使用,这就是一种资源的浪费。如何让使用的时候自动挂载?
dnf install autofs -y ##在客户端实现自动挂载和卸载,安装在客户端
cd /net ##切换到net下
cd 192.168 ##net下没有东西,但是却可以进入
cd ljx
df ##此时,自动挂载了
cd ##切换出来,等待一定的时间就会自动卸载
vim /etc/autofs.conf ##改配置文件,更改自动卸载时间
autofs+samba,autofs+nfs
vim /etc/auto.master ##主挂载策略文件 ,写最终挂载点的上层目录和子策略文件
/media /etc/auto.samba
vim /etc/auto.samba ##子策略文件
samba -fstype=cifs,username=li,password=westos ://192.168.43.222/LJX
测试:
cd /media
cd samba ##此时,samba可以列出东西
df ##已经自动挂载
nfs
vim /etc/auto.samba ##此时编写不需要编写主配置文件,因为samba和nfs想要挂载在同一目录下,主配置文件不能写两个相同的目录,因此可以只是编写子配置文件
nfs 192.168.432.222:/ljx
测试:
cd /media
cd nfs ##此时,nfs可以列出东西
df ##已经自动挂载
iscsi磁盘共享服务的部署
iscsi服务,用软件让设备的管理权限也同步,传输速率更快,不需要通过软件管理设备,而是直接管理设备
此实验需要添加一块空白硬盘
-
共享
fdisk -l ##查看是否有一块硬盘
fdisk /dev/sdb ##建立一个分区
n
udevadm settle ##同步对设备使用权进行共享:
dnf install targetcli -y
systemctl status target.service
systemctl enable --now target.service
targetcli ##进入设定
ls ##紫色的看为目录
/backstores/block create ljx_storage /dev/sdb1 ##建立
/iscsi create iqn.2021-02.org.westos:storage ##这就是对外提供设备名称
/iscsi/iqn.2021-02.org.westos:storage/tpg1/luns create /backstores/block/ljx_storage ##关联
/iscsi/iqn.2021-02.org.westos:storage/tpg1/acls create iqn.2021-02.org.westos:westoskey
exit
firewall-cmd --permanent --add-port=3260/tcp
firewall-cmd --reload测试端接收
fdisk -l
dnf search iscsi
dnf install iscsi-initiator-utils.x86_64 -y
vim /etc/iscsi/initiatorname.iscsi
iqn.2021-02.org.westos:westoskey
systemctl restart iscsi.service
iscsiadm -m discovery -t st -p 192.168.43.222 ##m 操作方式 l 登录 t 设备类型 p 指定设备所在ip T设备名称
iscsiadm -m node -T iqn.2021-02.org.westos:storage -p 192.168.43.222 -l
fdisk -l ##此时发现同步过来了一个盘划分分区
fdisk /dev/sdc
udevadm settle
mkfs.xfs /dev/sdc1
mount /dev/sdc1 /mnt
-
结束共享
客户端:
iscsiadm -m discovery -t st -p 192.168.43.222
iscsiadm -m node -T iqn.2021-02.org.westos:storage -p 192.168.43.222 -u
iscsiadm -m node -T iqn.2021-02.org.westos:storage -p 192.168.43.222 -o delete
systemctl restart iscsi服务端
targetcli
clearconfig confirm=True