我的云文档怎么没有了(我的云文档怎么找)
537
2022-05-29
1、NFS简介
1.1 什么是NFS
NFS(Network File System) 配置简单 权限不太明确
NFS可以让客户端把服务器的共享目录挂载到本机使用,就想使用本机分区一样,使用非常方便。
1.2 RPC(远程调用)服务
NFC是被RPC服务管理的,所以必须安装RPC的主程序rpcbind
1.3 NFS端口
NFS端口:2049
RPC端口:111
NFS daemon端口:随机
1.4 和其他文件服务器对比(SFU)
服务名称
适用范围
服务器端
客户端
局限性
FTP
内网和公网
Windows、Linux
Windows、Linux
无法直接在服务器端修改数据
Samba
内网
Windows、Linux
Windows、Linux
只能在内网使用
NFS
内网和公网
Linux
Linux(Windows)
客户端需要挂载使用,对普通用户有一定的技术要求
2、NFS权限说明
2.1 权限说明
Linux系统目录权限会生效
NFS服务共享权限也会生效
2.2 用户身份映射(系统权限)
NFS没有用户登录认证机制,所以客户端登录到服务器后,会把客户端的身份映射到服务器端,就会出现四种可能。
2.3 第一种可能
client和server上刚好有相同的账号和用户组(用户名和UID都要相同)
client上用户可以再server上按照用户权限使用文件
2.4 第二种可能
当client和server上拥有相同的UID,但是用户名不同
假设client上有用户aa(UID:500),server上有用户bb(UID:500)。在client在使用server共享目录是,身份识别为bb(因为LInxu权限绑定在UID上)
此种情况尽量避免出现,容易逻辑混乱
2.5 第三种可能
server上没有client的UID
client用户访问server时,server上没有此UID,则把此用户自动转变为nfsnobody(UID:65534)用户
2.6 第四种可能
client上是root使用共享
默认把roor也转变为nfsnobody,服务器端可以修改配置文件,允许root访问nfs服务器
3、NFS服务器端设置
3.1 服务器端安装
默认已安装,如需手动安装
NFS主程序:nfs-utils
RPC主程序:rpcbind(旧版本 portmap)
3.2 相关文件
配置文件 /etc/exports
3.3 服务器端管理
默认已启动,如需手动启动
$ service nfs start
$ service rpcbind start
3.4 守护进程
$ ps aux | grep -E “nfs|rpc”
rpc.rquotad NFS配额
rpc.mountd 处理客户端挂载
nfsd NFS守护进程
rpcbind RPC守护进程
3.5 RPC服务注册情况
$ rpcinfo –p IP或主机名
4、NFS服务器端配置文件
4.1 配置文件
/etc/exports
共享目录 客户端(权限)
4.2 可识别的客户端
指定IP 192.168.44.4
指定网段 192.168.44.0/24 192.168.44.0/255.255.255.0
指定主机名 www.itxdl.cn
所有主机 *
4.3 常用权限
rw 读写
ro 只读
all_squash 不论登录是谁,都压缩为匿名用户nfsnobody
root_squash 如果登录的是root,压缩为nfsnobody
no_root_squash 允许root身份登录,不推荐
anonuid 把所有的登录用户,不再压缩为nfsnobody用户,而是压缩为指定uid用户
sync 将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性
async 将数据先保存在内存缓冲区中,必要时才写入磁盘
4.4 举例1
任何人可以访问,允许root访问
$ vi /etc/exports
/home/test *(rw,no_root_squash)
4.5 举例2
同时共享多个目录
$ vi /etc/exports
/home/test 192.168.44.3(rw,no_root_squash) *(ro)
/home/soft 192.168.44.0/24(rw)
4.6 举例3
匿名用户访问
$ vi /etc/exports
/home/soft 192.168.44.0/24(rw,all_squash,anonuid=600)
4.7 常用命令
$ exportfs 选项
-a 按照配置文件挂载/卸载所有目录
-r 重新挂载
-u 卸载
-v 显示详细信息
4.8 exportfs举例
$ exportfs -arv 重新挂载所有目录,不用重启NFS服务
$ exportfs -auv 全部卸载所有目录
4.9 showmount命令
shoumount查看共享目录
$ shoumount –e IP或主机名
-e 产看某个主机的共享目录
5、NFS客户端使用
5.1 客户端需要启动的服务
需要启动rpcbind,默认已经启动
手工启动命令
$ service rpcbind start
5.2 查看服务器端共享目录
$ showmount -e 192.168.44.3 指定服务器端IP即可
5.3 把服务器共享目录挂载到本地
$ mkdir /home/client 建立挂载点
$ mount –t nfs 192.168.44.3:/home/soft /home/client 挂在到本地使用
$ mount 查看挂载
5.4 卸载
$ umount /home/client
5.5 开机自动挂载
$ vi /etc/fstab 192.168.44.2:/home/test /home/client nfs defaults 0 0
6、权限实验
6.1 第一种可能
client和server上刚好有相同的账号和用户组(用户组名和UID都要相同)
client上用户可以再server上按照用户权限使用文件
服务器
$ useradd –u 600 test1
$ passwd test1
客户端
一样的用户与UID
$ su - test1
$ cd /home/test
$ touch cde
$ ll cde
-rw-rw-r--1 test1 test1 0 11月 14 2016 cde
6.2 第二种可能
当client和server上拥有相同过的UID,但是用户民不同
假设client上有用户aa(UID:500),server上有用户bb(UID:500)。在client在使用server共享目录时,身份识别为bb(因为Linux权限绑定在UID上)
此种情况尽量避免出现,容易逻辑混乱
服务器端
用户名:test1 UID:600
客户端
$ useradd -u 600 user1
$ su - user1
$ cd /home/test
$ touch def
$ ll def
-rw-rw-r-- 1 user1 user1 0 11月 14 2016 def
服务器端
$ ll /tmp/def
-rw-rw-r-- 1 test1 test1 0 11月14 05:40 /tmp/def
6.3 第三种可能
server上没有client的UID
client用户访问server时,server上没有此UID,则把此用户自动转变为nfsnobody(UID:65534)用户
服务器端
没有UID为700的用户
客户端
$ useradd -u 700 test2
$ touch qwe
$ ll qwe
-rw-rw-r-- 1 nobody nobody 0 11月14 2016 qwe
6.4 第四种可能
client上是root使用共享
默认把root也转换为nfsnobody。服务器端可以修改配置文件,允许root访问nfs服务器
服务器端
不允许root访问
客户端
$ cd /home/test
$ touch asd
$ ll asd
-rw-r--r-- 1 nfsnobody nfsnobody 0 1月14 2016 asd
服务器端
允许root访问
$ vi /etc/exports
/tmp 192.168.44.4(rw,no_root_squash)
$ exportfs -auv
$ exportfs -arv
客户端
$ cd /home/test
$ touch zxc
$ ll zxc
Linux
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。