在Redhat Linux 中查看是否已安装NFS 及portmap 的命令如下:
[root@localhost root]# rpm –q nfs-utils portmap
portmap-4.0-54 //portmap软件包组件
nfs-utils-1.0.1-2.9 //nfs后台套件
假如没有安装这两个软件包,在系统安装光盘中查找nfs服务器安装程序
[root@localhost root]# find ./ -name nfs*
安装相应版本的服务器程序,命令如下:
[root@localhost root]# rpm -ivh portmap-4.0-54.i386.rpm
[root@localhost root]# rpm -ivh nfs-utils-1.0.1-2.9.i386.rpm
二、NFS 服务器的相关配置应用
NFS 服务器主要有以下配置文件。
/etc/exports NFS 的主要配置文件,系统没有默认值,所以该文件初始为空,用户必 须要使用vi 编辑这个文件。
/usr/sbin/exportfs 维护NFS 共享资源的指令,可以利用这个指令重新共享/etc/exports 变 更的目录资源,将NFS 服务器分享的目录卸载或重新共享。
/usr/sbin/showmount 另一个重要的NFS 指令。Showmount 命令可以用来查看NFS 分享 出来的目录资源。
/var/lib/nfs/xtab 是主要的NFS 日志文件,当NFS 分享出目录资源,所有客户机端中曾 经连接上NFS 主机的信息都将记录到此日志文件中。
设定NFS 服务器的常用配置如下所示。
exportfs 检验目录。
查看/var/lib/nfs/xtab 文档。
Showmount 查看共享信息。
观察启动的端口号。
三、 文本界面下配置NFS 服务器
1.配置/etc/exports 文件,设置访问权限。
[root@localhost root]# vi /etc/exports //修改配置文件
[欲共享的目录] [主机名称1或者IP1 (参数1)(参数2)…] [主机
名称2或者IP1 (参数3)(参数4)…]
[欲共享的目录]是要共享给[主机名称1]及[主机名称2]的目录,但是提供给这两者的权
限并不一样,其中,给主机名称1 的权限是参数1 和参数2,给主机名称2 的权限是参数3 与参数4。
参数先容如下所示。
rw 可擦写的权限。
ro 只读的权限。
no_root_squash 登录NFS 主机使用分享目录的使用者,假如是根用户,那么对于这个 分享的目录,它就具有根用户的权限。
root_squash 登录NFS 主机使用分享目录的使用者是根用户时,这个使用者的权限将被
压缩成为匿名使用者,通常它的UID 与GID 都会变成nobody 系统账号的身份。
all_squash 无论登录NFS 的使用者的身份是什么,它的身份都会被压缩成为匿名使用 者,通常是nobody。
anonuid 前面*_squash 先容的匿名使用者的UID 设定值。通常为nobody,但是治理员
可以自行设定这个UID 的值,这个UID 必须要存在于/etc/passwd 文件中。
anongid 意义同anonuid,只是为group ID。
sync 数据同步写进到内存与硬盘当中。
另外,root 写进的文件还应具有root 的权限。
[root@test root]# vi /etc/exports
/tmp *(rw,no_root_squash)
所有主机都可以使用/tmp 这个目录。留意,*(rw,no_root_squash)中间没有空格符,而
/tmp 与*(rw,no_root_squash)则是有空格符隔开的。
----------------------- Page 4-----------------------
本例中,客户机端以根用户身份登录Linux 主机,共享这部主机的/tmp 之后,在该目录
当中,此客户机端将具有根用户的权限。
例2 将一个公共的目录/home/public 公然,但只答应局域网络内这个网 域的用户可以读写,所有其他人只能读取,设置如下:
[root@test root]# vi /etc/exports
/tmp *(rw,no_root_squash)
/home/public 172.25.1.*(rw) *(ro)
/home/public 172.25.1.0/24(rw) *(ro)
本例中,当IP 地址在这个网段内时,在客户机端挂载了Server 真个/home /public 后,针对这个被挂载的目录,客户机端就具有读写的权限,假如不是在这个网段之 内的用户,则只能读取数据。
例3 将一个私人的目录/home/test 开放给这个客户机真个机器使用。
[root@test root]# vi /etc/exports
/tmp *(rw,no_root_squash)
/home/public 172.25.1.*(rw) *(ro)
/home/test 172.25.1.100(rw)
例4 设置*.网域的主机登录NFS 主机,并可以存取/home/linux ,但在他们 存数据时,将他们的UID 与GID 都变成40 这个身份的使用者。
[root@test root]# vi /etc/exports
/tmp *(rw,no_root_squash)
/home/public 172.25.1.*(rw) *(ro)
/home/test 172.25.1.100(rw)
/home/linux *.linux.org(rw,all_squash,anonuid=40,anongid=40)
当登录这部NFS 主机,并在/home/linux 写进文件时,该文件的所有用户 与所有群组,就会变成/etc/passwd 里面对应的UID 为40 的那个身份的使用者。
2.启动portmap 和nfsd 服务
启动portmap 和nfsd 服务的命令如下:
[root@localhost root]# /etc/rc.d/init.d/portmap start
启动portmapper: 确定 ]
[root@localhost root]# /etc/rc.d/init.d/nfs start
启动NFS 服务: 确定 ]
Starting NFS quotas: 确定 ]
启动NFS 守护进程: 确定 ]
启动NFS mountd: 确定 ]
portmap 将自动启动,不需要做任何设置。NFS 将启动4 个进程。假如启动成功,可以 到/var/log/messages 内查看是否正确启动。
[root@localhost root]# tail /var/log/messages
......
Sep 20 11:24:21 localhost 9月20 11:24:21 portmap:
portmap 启动 succeeded
Sep 20 11:28:27 localhost exportfs[5387]: /etc/exports:1:
unknown keyword "all_ aquash"
Sep 20 11:28:27 localhost 9月20 11:28:27 exportfs:
exportfs: /etc/exports:1:
unknown keyword "all_aquash"
Sep 20 11:28:27 localhost 9月20 11:28:27 nfs: 启动NFS
服务: succeeded
Sep 20 11:28:27 localhost 9月20 11:28:27 nfs:
rpc.rquotad 启动 succeeded
Sep 20 11:28:27 localhost kernel:Installing knfsd
(copyright (C) 1996 okir@ ).
Sep 20 11:28:27 localhost 9月20 11:28:27 nfs: rpc.nfsd
启动 succeeded
Sep 20 11:28:27 localhost 9月20 11:28:27 nfs: rpc.mountd
启动 succeeded
3.exportfs 输出
假如重新配置了/etc/exports 文件,并不需要重新启动NFS 服务器,使用exportfs 命令即 可,此命令的语法结构如下:
[root@test root]# exportfs [-aruv] //输出
其主要参数说明如下所示。
-a 全部挂载(或卸载)/etc/exports 文件内的设定。
-r 重新挂载/etc/exports 内的设定,同步更新/etc/exports 及/var/lib/nfs/xtab 的内容。
-u 卸载某一目录。
-v 在输出时将分享的目录显示到屏幕上。
示例如下所示:
[root@localhost root]# exportfs -rv
exportfs: No 'sync' or 'async' option specified for export
"172.25.1.*:/home".
Assuming default behaviour ('sync').
NOTE: this default has changed from previous versions
exporting 172.25.1.*:/home
[root@localhost root]# exportfs -au //全部缷载
4.showmount 查看
showmount 命令用于查看有没有可以共享目录的指令,其语法结构如下:
[root@localhost root]# showmount [-ae] hostname
其主要参数说明如下所示。
-a 在屏幕上显示目前主机与客户机所连上来的使用目录状态。
-e 显示hostname 这部机器/etc/exports 内的分享目录。
示例如下所示:
[root@localhost root]# showmount -e localhost
Export list for localhost:
/home 172.25.1.*
[root@localhost root]# showmount -e 172.25.1.126
Export list for 172.25.1.126:
/home 172.25.1.*
因此,当要扫描某一部主机提供的NFS 分享的目录时,可以使用showmount -e IP 命令。
5.RPC 服务器的相关指令
使用rpcinfo 指令可以查看RPC 的各个端口的具体功能。
[root@localhost root]# rpcinfo -p localhost
程序 版本 协议 端口
2 tcp 111 portmapper
2 udp 111 portmapper
1 udp status
1 tcp status
2 tcp sgi_fam
1 udp 904 rquotad
2 udp 904 rquotad
1 tcp 907 rquotad
2 tcp 907 rquotad
2 udp 2049 nfs
3 udp 2049 nfs
1 udp nlockmgr
3 udp nlockmgr
4 udp nlockmgr
1 udp mountd
1 tcp mountd
2 udp mountd
2 tcp mountd
3 udp mountd
3 tcp mountd
6.4 客户端挂载远程主机
作为客户端,要挂载远程主机的NFS 目录到本机的操纵过程如下所示。
(1)查看远程主机共享目录信息,确定是否有足够的访问权限。
[root@localhost root]# showmount -e 172.25.1.126
Export list for 172.25.1.126:
/home 172.25.1.*
(2)创建本机挂载点。
[root@localhost root]# mkdir /mnt/nfs
[root@localhost root]# ls /mnt/
cdrom floppy nfs
(3)将远程主机共享目录挂载到本机。
[root@localhost root]# mount -t nfs 172.25.1.126:/home /mnt/nfs/
其中,-t 表示文件系统类型,本处为nfs 格式,为远程主机及共享目 录,/mnt/nfs/是本机挂载位置。
(4 )查看是否挂载成功。
[root@localhost root]# ls /mnt/nfs/
aquota.group Linux&Related software unix source
aquota.user lost+found test1 windows_software
book master enter test2 yangzongde
bootdisk.iso project dictionary example test3
[root@localhost root]# rpm –q nfs-utils portmap
portmap-4.0-54 //portmap软件包组件
nfs-utils-1.0.1-2.9 //nfs后台套件
假如没有安装这两个软件包,在系统安装光盘中查找nfs服务器安装程序
[root@localhost root]# find ./ -name nfs*
安装相应版本的服务器程序,命令如下:
[root@localhost root]# rpm -ivh portmap-4.0-54.i386.rpm
[root@localhost root]# rpm -ivh nfs-utils-1.0.1-2.9.i386.rpm
二、NFS 服务器的相关配置应用
NFS 服务器主要有以下配置文件。
/etc/exports NFS 的主要配置文件,系统没有默认值,所以该文件初始为空,用户必 须要使用vi 编辑这个文件。
/usr/sbin/exportfs 维护NFS 共享资源的指令,可以利用这个指令重新共享/etc/exports 变 更的目录资源,将NFS 服务器分享的目录卸载或重新共享。
/usr/sbin/showmount 另一个重要的NFS 指令。Showmount 命令可以用来查看NFS 分享 出来的目录资源。
/var/lib/nfs/xtab 是主要的NFS 日志文件,当NFS 分享出目录资源,所有客户机端中曾 经连接上NFS 主机的信息都将记录到此日志文件中。
设定NFS 服务器的常用配置如下所示。
修改/etc/exports,设定权限题目。
exportfs 检验目录。
查看/var/lib/nfs/xtab 文档。
Showmount 查看共享信息。
观察启动的端口号。
三、 文本界面下配置NFS 服务器
1.配置/etc/exports 文件,设置访问权限。
[root@localhost root]# vi /etc/exports //修改配置文件
[欲共享的目录] [主机名称1或者IP1 (参数1)(参数2)…] [主机
名称2或者IP1 (参数3)(参数4)…]
[欲共享的目录]是要共享给[主机名称1]及[主机名称2]的目录,但是提供给这两者的权
限并不一样,其中,给主机名称1 的权限是参数1 和参数2,给主机名称2 的权限是参数3 与参数4。
参数先容如下所示。
rw 可擦写的权限。
ro 只读的权限。
no_root_squash 登录NFS 主机使用分享目录的使用者,假如是根用户,那么对于这个 分享的目录,它就具有根用户的权限。
root_squash 登录NFS 主机使用分享目录的使用者是根用户时,这个使用者的权限将被
压缩成为匿名使用者,通常它的UID 与GID 都会变成nobody 系统账号的身份。
all_squash 无论登录NFS 的使用者的身份是什么,它的身份都会被压缩成为匿名使用 者,通常是nobody。
anonuid 前面*_squash 先容的匿名使用者的UID 设定值。通常为nobody,但是治理员
可以自行设定这个UID 的值,这个UID 必须要存在于/etc/passwd 文件中。
anongid 意义同anonuid,只是为group ID。
sync 数据同步写进到内存与硬盘当中。
async 数据先暂存于内存当中,而不直接写进硬盘。
另外,root 写进的文件还应具有root 的权限。
[root@test root]# vi /etc/exports
/tmp *(rw,no_root_squash)
所有主机都可以使用/tmp 这个目录。留意,*(rw,no_root_squash)中间没有空格符,而
/tmp 与*(rw,no_root_squash)则是有空格符隔开的。
----------------------- Page 4-----------------------
本例中,客户机端以根用户身份登录Linux 主机,共享这部主机的/tmp 之后,在该目录
当中,此客户机端将具有根用户的权限。
例2 将一个公共的目录/home/public 公然,但只答应局域网络内这个网 域的用户可以读写,所有其他人只能读取,设置如下:
[root@test root]# vi /etc/exports
/tmp *(rw,no_root_squash)
/home/public 172.25.1.*(rw) *(ro)
/home/public 172.25.1.0/24(rw) *(ro)
本例中,当IP 地址在这个网段内时,在客户机端挂载了Server 真个/home /public 后,针对这个被挂载的目录,客户机端就具有读写的权限,假如不是在这个网段之 内的用户,则只能读取数据。
例3 将一个私人的目录/home/test 开放给这个客户机真个机器使用。
[root@test root]# vi /etc/exports
/tmp *(rw,no_root_squash)
/home/public 172.25.1.*(rw) *(ro)
/home/test 172.25.1.100(rw)
例4 设置*.网域的主机登录NFS 主机,并可以存取/home/linux ,但在他们 存数据时,将他们的UID 与GID 都变成40 这个身份的使用者。
[root@test root]# vi /etc/exports
/tmp *(rw,no_root_squash)
/home/public 172.25.1.*(rw) *(ro)
/home/test 172.25.1.100(rw)
/home/linux *.linux.org(rw,all_squash,anonuid=40,anongid=40)
当登录这部NFS 主机,并在/home/linux 写进文件时,该文件的所有用户 与所有群组,就会变成/etc/passwd 里面对应的UID 为40 的那个身份的使用者。
2.启动portmap 和nfsd 服务
启动portmap 和nfsd 服务的命令如下:
[root@localhost root]# /etc/rc.d/init.d/portmap start
启动portmapper: 确定 ]
[root@localhost root]# /etc/rc.d/init.d/nfs start
启动NFS 服务: 确定 ]
Starting NFS quotas: 确定 ]
启动NFS 守护进程: 确定 ]
启动NFS mountd: 确定 ]
portmap 将自动启动,不需要做任何设置。NFS 将启动4 个进程。假如启动成功,可以 到/var/log/messages 内查看是否正确启动。
[root@localhost root]# tail /var/log/messages
......
Sep 20 11:24:21 localhost 9月20 11:24:21 portmap:
portmap 启动 succeeded
Sep 20 11:28:27 localhost exportfs[5387]: /etc/exports:1:
unknown keyword "all_ aquash"
Sep 20 11:28:27 localhost 9月20 11:28:27 exportfs:
exportfs: /etc/exports:1:
unknown keyword "all_aquash"
Sep 20 11:28:27 localhost 9月20 11:28:27 nfs: 启动NFS
服务: succeeded
Sep 20 11:28:27 localhost 9月20 11:28:27 nfs:
rpc.rquotad 启动 succeeded
Sep 20 11:28:27 localhost kernel:Installing knfsd
(copyright (C) 1996 okir@ ).
Sep 20 11:28:27 localhost 9月20 11:28:27 nfs: rpc.nfsd
启动 succeeded
Sep 20 11:28:27 localhost 9月20 11:28:27 nfs: rpc.mountd
启动 succeeded
3.exportfs 输出
假如重新配置了/etc/exports 文件,并不需要重新启动NFS 服务器,使用exportfs 命令即 可,此命令的语法结构如下:
[root@test root]# exportfs [-aruv] //输出
其主要参数说明如下所示。
-a 全部挂载(或卸载)/etc/exports 文件内的设定。
-r 重新挂载/etc/exports 内的设定,同步更新/etc/exports 及/var/lib/nfs/xtab 的内容。
-u 卸载某一目录。
-v 在输出时将分享的目录显示到屏幕上。
示例如下所示:
[root@localhost root]# exportfs -rv
exportfs: No 'sync' or 'async' option specified for export
"172.25.1.*:/home".
Assuming default behaviour ('sync').
NOTE: this default has changed from previous versions
exporting 172.25.1.*:/home
[root@localhost root]# exportfs -au //全部缷载
4.showmount 查看
showmount 命令用于查看有没有可以共享目录的指令,其语法结构如下:
[root@localhost root]# showmount [-ae] hostname
其主要参数说明如下所示。
-a 在屏幕上显示目前主机与客户机所连上来的使用目录状态。
-e 显示hostname 这部机器/etc/exports 内的分享目录。
示例如下所示:
[root@localhost root]# showmount -e localhost
Export list for localhost:
/home 172.25.1.*
[root@localhost root]# showmount -e 172.25.1.126
Export list for 172.25.1.126:
/home 172.25.1.*
因此,当要扫描某一部主机提供的NFS 分享的目录时,可以使用showmount -e IP 命令。
5.RPC 服务器的相关指令
使用rpcinfo 指令可以查看RPC 的各个端口的具体功能。
[root@localhost root]# rpcinfo -p localhost
程序 版本 协议 端口
2 tcp 111 portmapper
2 udp 111 portmapper
1 udp status
1 tcp status
2 tcp sgi_fam
1 udp 904 rquotad
2 udp 904 rquotad
1 tcp 907 rquotad
2 tcp 907 rquotad
2 udp 2049 nfs
3 udp 2049 nfs
1 udp nlockmgr
3 udp nlockmgr
4 udp nlockmgr
1 udp mountd
1 tcp mountd
2 udp mountd
2 tcp mountd
3 udp mountd
3 tcp mountd
6.4 客户端挂载远程主机
作为客户端,要挂载远程主机的NFS 目录到本机的操纵过程如下所示。
(1)查看远程主机共享目录信息,确定是否有足够的访问权限。
[root@localhost root]# showmount -e 172.25.1.126
Export list for 172.25.1.126:
/home 172.25.1.*
(2)创建本机挂载点。
[root@localhost root]# mkdir /mnt/nfs
[root@localhost root]# ls /mnt/
cdrom floppy nfs
(3)将远程主机共享目录挂载到本机。
[root@localhost root]# mount -t nfs 172.25.1.126:/home /mnt/nfs/
其中,-t 表示文件系统类型,本处为nfs 格式,为远程主机及共享目 录,/mnt/nfs/是本机挂载位置。
(4 )查看是否挂载成功。
[root@localhost root]# ls /mnt/nfs/
aquota.group Linux&Related software unix source
aquota.user lost+found test1 windows_software
book master enter test2 yangzongde
bootdisk.iso project dictionary example test3