项目要求,导师让挂载他的机器远程编程,结果因为路径最后一个字符大写没注意,搞了半天,各种尝试,气死了,不过也收获了nfs mount的一些用法。
首先,nfs:网络文件系统,想要mount远程的机器(上的某一文件夹),就要靠它在中间提供支持。
下面说正题:
1.我的系统时ubuntu 14.04 ,要使用nfs,要装两个东西:
(terminal下: )
sudo apt-get install nfs-kernel-server # 这是nfs的核心服务
sudo apt-get install nfs-common # 安装nfs的客户端
2.我们使用mount可以将本地的某个文件夹共享到网络上,共别人挂载使用:
实现这个功能只要配置 /etc/exports 这个文件,然后重启nfs服务就可以了
首先:sudo vim /etc/exports # vim 没装的自己搞定, 访问权限什么的有sudo在,不怕
具体的格式是: 本地路径(空格)可以访问的网段(没有空格)(参数。。。。)
举例子:
(1) /home/jacobxu/nfs-jacoxu *(rw,sync,no_root_squash,no_subtree_check)
这里就是将本地的 /home/jacobxu/nfs-jacoxu文件夹共享到网络,后面的星号表示全网段的人都可以挂载访问你的文件夹,(前提是知道你的ip)
(2)/home/jacobxu/nfs-jacoxu 192.168.111.*(rw,sync,no_root_squash,no_subtree_check)
这里的网段设置与(1)不同而已,以此类推
关于参数的问题,常见的如下:
rw:挂接此目录的客户端对该共享目录具有读写权限
sync:资料同步写入内存和硬盘
no_root_squash:root用户具有对根目录的完全管理访问权限。
no_subtree_check:不检查父目录的权限。
更具体的参数解释:
ro 只读访问
rw 读写访问sync 所有数据在请求时写入共享
async nfs在写入数据前可以响应请求
secure nfs通过1024以下的安全TCP/IP端口发送
insecure nfs通过1024以上的端口发送
wdelay 如果多个用户要写入nfs目录,则归组写入(默认)
no_wdelay 如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置。
hide 在nfs共享目录中不共享其子目录
no_hide 共享nfs目录的子目录
subtree_check 如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认)
no_subtree_check 和上面相对,不检查父目录权限
all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas root用户具有根目录的完全管理访问权限
anonuid=xxx 指定nfs服务器/etc/passwd文件中匿名用户的UID
anongid=xxx 指定nfs服务器/etc/passwd文件中匿名用户的GID
上面配置好,退出exports,重启nfs服务器:
sudo /etc/init.d/nfs-kernel-server restart
然后,其他的小朋友们就以通过网络访问你挂载的文件夹啦,前提是他们都装了nfs服务,并且知道你挂载的文件夹的载网络上的绝对路径
例子:
sudo mount -t nfs 192.168.0.103:/nfs /mnt/nfs/ /home/xxx(你的主机名)/xxx(你本地的文件夹路径:将远程文件夹映射到这里)
解除挂载:
sudo umount -t nfs /home/xxx(你的主机名)/xxx(你本地的用于挂载的文件夹路径)
3.当然,你如果闲着无聊,也可以将本地一个文件夹挂载到另一个文件夹下,呵呵,具体方法就不说了,想不出来,上面的内容就不要看了把。。。
关于mount和nfs,这里没有讲的很详细,只是做个笔记,更多的功能以后用到了再更新吧