一:简介:
NFS 最初是由 Sun Microsytem 公司於 1984 年所开发出来的,最主要的功能就是让网路上的 UNIX 电脑可以共享目录及档案。我们可以将远端所分享出来的档案系统,挂载 (mount) 在本地端的系统上,然後就可以很方便的使用远端的档案,而操作起来就像在本地操作一样,不会感到有甚麽不同。而使用 NFS 也有相当多的好处,例如档案可以集中管理,节省磁碟空间......等等。
二:安装 NFS:
大部份的 Linux Distribution 安装时都会将 NFS 安装上去,在 OpenLinux 上,NFS 由两个 RPM 套件所组成,分别为 nfs 及 nfs-server,nfs 主要包括一些 client 端所需要的程式,而 nfs-server 主要是 NFS Server 的一些 daemon 程式。
www.ixdba.net
三:设定 NFS:
设定档:/etc/exports
设定档格式:档案系统 [主机][选项]
例:
/ charlie(ro) john(rw,no_root_squash)
/tmp pc* col.com.tw(rw) 172.29.0.0/255.255.0.0(ro)
/home (ro)
/pub/private (noaccess)
可以编辑/etc/exports为:
/tmp *(rw,no_root_squash)
/home/public 192.168.0.*(rw) *(ro)
/home/test 192.168.0.100(rw)
/home/linux *.the9.com(rw,all_squash,anonuid=40,anongid=40)
选项说明:
ro: 即为:read only
rw: 即为:read write
no_root_squash: 信任客户端,对应 UID,登入到NFS主机的用户如果是ROOT用户,他就拥有ROOT的权限,此参数很不安全,建议不要使用。
no_root_squash:登入到NFS主机的用户如果是ROOT用户,他就拥有ROOT的权限,此参数很不安全,建议不要使用。
root_squash:在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被縮成为匿名使用者,通常他的 UID与GID 都会变成 nobody 那个身份;
all_squash:不管登陆NFS主机的用户是什么都会被重新设定为nobody。
anonuid:将登入NFS主机的用户都设定成指定user id,此ID必须存在于/etc/passwd中。
anongid:同 anonuid ,但是变成 group ID 就是了!
sync:资料同步写入存储器中。
async:资料会先暂时存放在内存中,不会直接写入硬盘。
insecure: 允许从这台机器过来的非授权访问。
noaccess: 客户端不能使用
exportfs命令:
如果我们在启动了NFS之后又修改了/etc/exports,是不是还要重新启动nfs呢?这个时候我们就可以用exportfs命令来使改动立刻生效,该命令格式如下:
exportfs [-aruv]
-a :全部mount或者unmount /etc/exports中的内容
-r :重新mount /etc/exports中分享出来的目录
-u :umount 目录
-v :在 export 的時候,将详细的信息输出到屏幕上。
具体例子:
[root @test root]# exportfs -rv <==全部重新 export 一次!
exporting 192.168.0.100:/home/test
exporting 192.168.0.*:/home/public
exporting *.the9.com:/home/linux
exporting *:/home/public
exporting *:/tmp
reexporting 192.168.0.100:/home/test to kernel
exportfs -au <==全部都卸载了。
四:启动及结束 NFS 的服务:
设定档更改後,一定要记得重新启动 NFS 的服务,启动及停止的方式如下:
# /etc/rc.d/init.d/nfs [ start | stop | restart | reload ]
#/etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默认启动的)
start 启动 NFS 服务
stop 停止 NFS 服务
restart 停止并重新启动 NFS 服务
reload 重新载入 NFS 设定值
五:客户端使用 NFS:
1.查看 NFS 的服务:
client 要查看 Server 有提供哪些 NFS 服务,可以使用 showmount 这个指令。
# showmount -e 可看有分享哪些目录
# showmount -a 可看出所有的 mount
2.连接 NFS Server:
要使用 NFS server 上的资源,使用 mount 指令就可以了。
# mount -t nfs hostname:/shared_dir /cc (cc为挂载)
例:
# mount -t nfs 192.168.1.100:/tmp /mnt/nfs
3.开机时自动连上 NFS:
如果希望开机的时候,系统就自动挂载 NSF,则需要编辑 /etc/fstab 档。
例:
192.168.1.100:/tmp /mnt/nfs nfs defaults 0 0