Linux下的NFS配置
虽然这种文章网上一堆,但我还是记录一下。
1. NFS介绍
NFS是Network File System的简写,即网络文件系统。NFS允许一个系统在网络上与它人共享目录和文件。
2. 安装
sudo apt-get install portmap #这个客户端和服务器都需要,是网络传输协议。 sudo apt-get install nfs-kernel-server #在服务器上安装nfs,客户端不需要。
3. 服务器端配置
vi /etc/export
添加:
/home/nfs/share *(ro,sync) #允许所有ip的读权限 /home/nfs/share 192.168.1.8(rw,sync,no_root_squas) #只允许我写ip访问
其中:
/home/nfs/share是服务器要共享的目录
*代表所有ip
rw为读写,ro为只读
sync为立刻写入硬盘,rsync为先写入缓存
no_all_squash 保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas root用户具有根目录的完全管理访问权限(这个如果不配置会造成远程root用户只读)
4. 启动服务器
/etc/init.d/nfs-kernel-server start chkconfig nfs-kernel-server on #设置nfs开机自动启动
5. 客户端挂载
mount 192.168.1.1:/home/nfs/share /mnt/nfs1 #192.168.1.1为服务器ip,挂载到本地/mnt/nfs1目录 umount /mnt/nfs1 #取消挂载
在/etc/rc.local中添加“mount 192.168.1.1:/home/nfs/share /mnt/nfs1”可实现开机自动挂载。
我遇到的一个问题
在客户端root登录后对共享目录只读。
解法:
在服务器的/etc/export配置文件中加上”no_root_squas”。因为默认为”root-squas”,即默认客户端的root会被映射成匿名用户。