# 官方提供@yunTaoScripts 文件共享 🔥🔥
# NFS 网络文件系统
实现类unix(linux、unix)系统之间的文件共享
firewall-cmd --get-default-zone
firewall-cmd --set-default-zone=trusted ## 关闭防火墙
vim /etc/exports
/data 192.168.26.0/24(rw,no_root_squash) ##限制访问网段
/data *192.168.26.0/24*(rw,no_root_squash) ##不限制
exportfs -avr
参数解释
- a: 生效所有/etc/exports配置
- v:输出结果
- r:重新加载/etc/exports配置
- 在另一台机器上 查看 并挂载
showmount -e 192.168.26.129
mount 192.168.26.129:/data /data/
# 永久挂载
cat /etc/fstab
/dev/sdb1 /root/xyt xfs defaults 0 0
192.168.26.129:/data /data nfs defaults 0 0
# samba客户端
类unix 和 windows 之间的共享。
- 查看windows共享的目录
C:\Users\Yuntao>net share
共享名 资源 注解
-------------------------------------------------------------------------------
C$ C:\ 默认共享
D$ D:\ 默认共享
IPC$ 远程 IPC
ADMIN$ C:\WINDOWS 远程管理
Users C:\Users
命令成功完成。
- 查看windows用户
C:\Users\Yuntao Xu>net user
\\DESKTOP-F5PRM04 的用户帐户
-------------------------------------------------------------------------------
__HSKDDNS_USER__ Administrator DefaultAccount
Guest Ling Jin WDAGUtilityAccount
命令成功完成。
- 新增tom 用户
PS C:\WINDOWS\system32> net user tom 123456 /add
命令成功完成。
# 查看服务器共享目录
- 安装客户端
yum whatprovides smbclient
yum install samba-client -y
- 查看共享目录
[root@server1 /]# smbclient -L //192.168.26.1 -U tom
Enter SAMBA\tom's password:
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk 远程管理
C$ Disk 默认共享
D$ Disk 默认共享
IPC$ IPC 远程 IPC
Users Disk
[root@server1 /]# smbclient -L //192.168.26.1 -U tom%123456
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk 远程管理
C$ Disk 默认共享
D$ Disk 默认共享
IPC$ IPC 远程 IPC
Users Disk
# 访问共享
- 首先在windows 设置共享文件夹,共享用户。
[root@server1 ~]# smbclient //192.168.26.1/share -U tom%123456
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Mon Jul 25 10:51:25 2022
.. DHS 0 Mon Jul 25 10:51:29 2022
122096127 blocks of size 4096. 37149381 blocks available
- 挂载使用
mount -o user=tom //192.168.26.1/share /smb/
mount -o username=tom,password=123456 //192.168.26.1/share /smb/
如果挂载失败可能缺少cifs包
yum install -y cifs-utils
- 永久挂载
cat /etc/fstab
//192.168.26.1/share /smb cifs defaults,username=tom,password=123456 0 0
# autofs
不用的时候不挂载,需要使用的时候自动挂载。
# 挂载光盘
vim /etc/auto.master.d/aa.autofs
- 实现/111/222/dvd 自动 挂载光盘
/111/222 /etc/auto.aaa
vim /etc/auto.aaa
dvd -fstype=iso9660,ro :/dev/cdrom ##本地设备
注意格式
- tab隔开
- name.autofs #必须以autofs结尾,
systemctl enable autofs.service --now
# 挂载nfs
vim /etc/auto.master.d/aa.autofs
- 实现/333/444/nfs 自动 挂载nfs
/- /etc/auto.bbb
请注意
- /-这种方式在挂载后,是可以看见/333/444/文件夹原有的内容的
- /111/222 这种方式在自动挂载后看不见其目录原有内容
vim /etc/auto.bbb
/333/444/nfs -fstype=nfs,rw 192.168.26.129:/data ##nfs 设备
systemctl restart autofs.service
# 用户家目录自动挂载 实战
- 在server1上 执行
[root@server1 ~]# cat /etc/exports
/yhome 192.168.26.0/24(rw,no_root_squash)
[root@server1 ~]# exportfs -avr
[root@server2 ~]# cat user.sh
#!/bin/bash
declare -i n=0
for i in $(seq 1 10);do
let n=n+1
uid=$((2000+i))
username=user$n
useradd -d /yhome/${username} -u $uid $username
echo 123456 |passwd --stdin $username
echo "$username $uid"
done
- 在server2 上执行
[root@server2 ~]# cat user.sh
#!/bin/bash
declare -i n=0
for i in $(seq 1 10);do
let n=n+1
uid=$((2000+i))
username=user$n
useradd -d /yhome/${username} -u $uid -M $username
echo 123456 |passwd --stdin $username
echo "$username $uid"
done
[root@server2 ~]# cat /etc/auto.master.d/yhome.autofs
/yhome /etc/auto.yhome
[root@server2 ~]# cat /etc/auto.yhome
user1 -fstype=nfs,rw 192.168.26.129:/yhome/user1
* -fstype=nfs,rw 192.168.26.129:/yhome/&
[root@server2 ~]# systemctl restart autofs.service
创建用户脚本有点不一样
- -M 指定不创建家目录
在server2
su - user2
也不会报错
* -fstype=nfs,rw 192.168.26.129:/yhome/&
- *匹配任意用户,&指代匹配到的用户。
← 快速链接