rehat 安装nfs服务

来源:互联网 发布:单片机实验怎么做 编辑:程序博客网 时间:2024/05/17 08:47
在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 服务器的常用配置如下所示。 

修改/etc/exports,设定权限题目。 


启动portmap 和nfsd 服务。 
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 数据先暂存于内存当中,而不直接写进硬盘。 


例1 将/tmp 共享,由于这个目录是所有用户都可以读写的,因此答应所有的用户存取。 
另外,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