nfs服务器

时间:2024.4.29

一、NFS简介

NFS由SUN公司开发,目前已经成为文件服务的一种标准(RFC1904,RFC1813)。其最大功能是可以通过网络让不同操作系统的计算机可以共享数据,所以也可以将其看做是一台文件服务器。NFS提供Windows与Linux及UNIX与Linux之间通信的方法(功能与samba相似)。所以,NFS是分布式计算机系统的一个组成部分,可实现在异构网络上共享和装配远程文件系统。

客户端PC可以挂载NFS服务器所提供的目录并且挂载之后这个目录看起来如同本地的磁盘分区一样,可以使用cp、cd、mv、rm及df等与磁盘相关的命令。NFS有属于自己的协议与使用的端口号(TCP 2049端口),但是在传送资料或者其他相关信息时候,NFS服务器使用一个称为"远程过程调用"(Remote Procedure Call,RPC)的协议来协助NFS服务器本身的运行。

二、RPC服务的原理

因为NFS支持的功能相当多,而不同的功能都会使用不同的程序来启动。每启动一个功能就会启用一些端口来传输数据,因此NFS的功能所对应的端口才没有固定,而是采用随机取用一些未被使用的小于724的端口来作为传输之用。但如此一来又造成客户端要连接服务器时的困扰,因为客户端要知道服务器端的相关端口才能够联机,此时我们需要远程过程调用(RPC)的服务。RPC最主要的功能就是指定每个NFS功能所对应的端口号,并且回报给客户端,让客户端可以连接到正确的端口上。当服务器在启动NFS时会随机选用数个端口,并主动地向RPC注册。因此RPC可以知道每个端口对应的NFS功能。然后RPC固定使用端口111来监听客户端的请求并回报客户端正确的端口,所以可以让NFS的启动更为容易。注意,启动NFS之前,要先启动RPC;否则NFS会无法向RPC注册。另外,重新启动RPC时原本注册的数据会不见,因此RPC重新启动后它管理的所有程序都需要重新启动以重新向RPC注册。

当客户端有NFS文件要存取请求时,它如何向服务器端要求数据?

(1)客户端会向服务器端的RPC(port 111)发出NFS文件存取功能的询问请求。

(2)服务器端找到对应的已注册的NFS daemon端口后会回报给客户端。

(3)客户端了解正确的端口后,就可以直接与NFS守护进程来联机。

由于NFS的各项功能都必须要向RPC注册,因此RPC才能了解NFS服务的各项功能的port number、PID和NFS在主机所监听的IP等,而客户端才能够通过RPC的询问找到正确对应的端口。即NFS必须要有RPC存在时才能成功地提供服务,因此我们称NFS为RPC Server的一种。事实上,有很多这样的服务器都向RPC注册。例如,NIS(Network Information Service)也是RPC Server的一种。所以如下图所示,不论是客户端还是服务器端,要使用NFS都需要启动RPC服务。

nfs服务器

三、NFS所需软件包

nfs-utils-1.0.9-16.e15 nfs服务主程序包

portmap-4.0-65.2.2.1 提供RPC服务,众多服务必须依赖此服务(例:nis 、nfs等)

四、搭建NFS服务器

1. NFS服务器网络配置环境如下图所示:

nfs服务器

2. 安装所需软件包

由于nfs-utils程序包与portmap程序包默认都已经安装,所以本案例中不需再手工安装(如果您的环境中没有安装,就需要使用rpm 命令将这两个程序包安装上)。查询程序包是否安装,具体操作如下图所示:

nfs服务器

将nfs、portmap服务设置为开机自动启动(当然portmap服务默认就是开机自动启动),操作如下图所示:

nfs服务器

启动nfs服务(由于portmap服务默认已经启动,所以本例中就不需要手工启动portmap服务),操作如下图所示:

nfs服务器

3. 设置输出(共享)目录

服务器端目录的输出(共享)都是通过设置/etc/exports这个文件而完成的,设定格式如下:

欲输出的目录名 主机名1或者IP1(参数1,参数2) 主机名2或者IP2(参数3,参数4) ......

上面这个格式表示,同一个目录可以输出给多台不同的主机,但提供给这些主机的权限和参数是不同的,所以需要分别设定这些主机得到的权限。可以设定的参数主要有以下几种: rw:可读写的权限;

ro:只读的权限;

no_root_squash:登入到NFS主机的用户如果是ROOT用户,他就拥有ROOT的权限,此参数很不安全,建议不要使用。

root_squash 将root用户及所属组都映射为匿名用户或用户组(默认设置)。 all_squash:不管登陆NFS主机的用户是什么都会被重新设定为nobody。

anonuid:将登入NFS主机的用户都设定成指定的user id,此ID必须存在于/etc/passwd中。

anongid:同 anonuid ,但是此处代表 group ID 。

sync:资料同步写入存储器中。

async:资料会先暂时存放在内存中,不会直接写入硬盘。

insecure 允许从这台机器过来的非授权访问。

例如:①建立目录,并在目录中创建新文件,如下图所示:

nfs服务器

②将上图创建的目录写入/etc/exports文件,设置为输出(只允许172.24.0.0/24网段访问,权限为可读写),效果如下图所示:

nfs服务器

4. 将/etc/exports文件中指定的输出目录输出(共享)

在服务器上设置完输出目录之后,生效方法有两种(即:有两种方法将目录输出),分别是:重新启动nfs服务和使用exportfs命令重新输出。

方法一:[root @station4 ~]# service nfs restart

方法二:[root @station4 ~]# exportfs -rv

exportfs命令:

如果我们在启动了NFS之后又修改了/etc/exports,是不是还要重新启动nfs呢?这个时候我们就可以用exportfs命令来使改动立刻生效,该命令格式如下: exportfs [-aruv] 说明: -a :全部mount或者unmount /etc/exports中的内容 ; -r :重新mount /etc/exports中分享出来的目录 ; -u :umount 目录 ; -v :在 export 的时候,将详细的信息输出到屏幕上。

接上例中,③将"/common"目录输出操作方法如下图所示:

nfs服务器

注: [root @station4 ~]# exportfs -rv <==该命令表示:全部重新 export 一次!

[root @station4 ~]# exportfs -auv <==该命令表示:全部都卸载了。

五、客户段的操作:

当NFS服务器将目录输出之后,客户端就可以使用mount命令 将NFS服务器上的输出目录挂载到客户端本地的目录中,进而访问操作。但客户端并不知道NFS服务器输出了哪些目录,所以客户端在使用mount命令挂载之前必须先使用showmount命令查看NFS服务器上有哪些输出目录。

1. showmout命令的用法

showmout

-a :这个参数一般在NFS Server上使用,是用来显示已经mount到本nfs服务器上的客户端IP及其所连接的目录。

-d :这个参数一般在NFS Server上使用,是用来显示NFS服务器上有哪些目录被客户端挂载了。

-e :这个参数一般在NFS Client上使用,显示指定的NFS SERVER上export出来的目录。 接上例,④在NFS客户端使用showmount命令查看NFS服务器有哪些输出目录,具体操作如下:

nfs服务器

2. mount nfs目录的方法:

mount -t nfs hostname(orIP):/directory /mount/point

说明:mount -t nfs 服务器IP或服务主机名:/输出目录 挂载点

接上例,⑤在客户端挂载172.24.0.4中的/common目录,具体操作如下图所示:

nfs服务器

六、NFS安全

1. NFS的不安全性主要体现于以下4个方面:新手对NFS的访问控制机制难于做到得心应

手,控制目标的精确性难以实现;NFS没有真正的用户验证机制,而只有对RPC/Mount请求的过程验证机制;较早的NFS可以使未授权用户获得有效的文件句柄;在RPC远程调用中,一个SUID的程序就具有超级用户权限.

2. 加强NFS安全的方法:

a) 合理的设定/etc/exports中共享出去的目录,最好能使用anonuid,anongid以使

MOUNT到NFS SERVER的CLIENT仅仅有最小的权限,最好不要使用root_squash。 b) 使用IPTABLE防火墙限制能够连接到NFS SERVER的client IP范围

iptables -A INPUT -i eth0 -p tcp -s 192.168.0.0/24 --dport 111 -j ACCEPT

iptables -A INPUT -i eth0 -p udp -s 192.168.0.0/24 --dport 111 -j ACCEPT

c) 为了防止可能的Dos攻击,需要合理设定NFSD 的COPY数目。

d) 通过/etc/hosts.allow和/etc/hosts.deny文件限制客户端访问

方法如下:在/etc/hosts.deny文件中,添加portmap:ALL行(表示拒绝任何客户端使用portmap服务);在/etc/hosts.allow文件中,添加portmap:允许访问的客户端网段(表示允许某个网段的客户端访问portmap服务)

例如:允许172.24.0.0网段访问portmap服务,拒绝其它任何网段访问portmap服务,具体操作如下所示:

nfs服务器

e) 改变默认的NFS 端口

NFS默认使用的是111端口,但同时你也可以使用port参数来改变这个端口,这样就可以在一定程度上增强安全性。

f) 使用Kerberos V5作为登陆验证系统

七、关于iptables 防火墙的设置:

portmap服务使用TCP、UDP的111端口工作,而NFS服务是使用TCP的2049端口以及其它的一些高位动态端口工作,这样对iptables防火墙的设置难度较大。因此需要我们为NFS服务指定静态工作端口。方法如下:

新建或编辑/etc/sysconfig/nfs文件,并在该文件中添加以下四行即可(说明:本例中将端口指定为4002、4003、4004):

MOUNTD_PORT="4002"

STATD_PORT="4003"

LOCKD_TCPPORT="4004"

LOCKD_UDPPORT="4004"

效果如下图所示:

nfs服务器

通过以上操作,portmap服务与nfs服务的所有端口都固定之后,我们就可以开始设置iptables防火墙了。在iptables防火墙中开放tcp及udp的111端口、开放tcp的2049端口、开放tcp及udp的4002到4004端口即可。具体操作如下图所示:

nfs服务器

关于NFS 服务就讨论到这里,如果有相关问题请与我联系。

流星:caiyuanji (at) 163.com QQ:85104942


第二篇:安装配置nfs服务器


Debian和Ubuntu Linux的NFS配置介绍 ........................................... 2

ubuntu9.04下nfs的设置使用 .................................................... 6

嵌入式linux的NFS开发环境的建立 .............................................. 8

Ubuntu9.10在ARM上建立NFS服务 ............................................... 12

在Ubuntu 9.10下怎么设置ip ................................................... 14

FreeBSD网络文件系统(NFS) ................................................... 16

NFS服务器 .................................................................... 16

安装配置nfs服务器

.cn/s/blog_5b1423a10100awm2.html

1 安装

root@ubuntu:/# apt-get install nfs-common nfs-kernel-server nfs-client

正在读取软件包列表... 完成

正在分析软件包的依赖关系树

Reading state information... 完成

nfs-common 已经是最新的版本了。

nfs-kernel-server 已经是最新的版本了。

注意,我选了 nfs-common 而非 nfs-client

nfs-common 已经是最新的版本了。

共升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件未被升级。

2 配置

root@ubuntu:~# nano /etc/exports

# /etc/exports: the access control list for filesystems which may be exported # to NFS clients. See exports(5).

#

# Example for NFSv2 and NFSv3:

# /srv/homes hostname1(rw,sync) hostname2(ro,sync)

#

# Example for NFSv4:

# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt)

# /srv/nfs4/homes gss/krb5i(rw,sync)

/home/cache/netboot 192.168.1.0/24(rw,no_root_squash,sync)

(注*上面这一行是服务器端提供的磁盘空间的位置,可以是服务器的仸一目录,建议将一个单独的磁盘分区挂在这个目录下。但是请注意:这个服务器端的/home/cache/netboot并不是将来客户端的虚拟根目录,因为在/home/cache/netboot下面将会有一个名为root的子目录,而这个/home/cache/netboot/root才是本文中的客户端的虚拟根目录,在启动完成后、实际运行过程中,工作就仅局限在/home/cache/netboot/root中了。建立root的问题下文将会讲到)

3 启动nfs或者重新加载

启动nfs

root@ubuntu:/# /etc/init.d/nfs-kernel-server start

* Exporting directories for NFS kernel daemon...

exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "192.168.1.0/24:/home/cache/netboot".

Assuming default behaviour ('no_subtree_check').

NOTE: this default has changed since nfs-utils version 1.0.x

...done.

* Starting NFS kernel daemon

...done.

如果是修改了/etc/exports 配置文件,不需要重新启动nfs服务器,只需要刷新一下,命令如下

root@ubuntu:/# exportfs -r

exportfs: /etc/exports [1]: Neither 'subtree_check' or 'no_subtree_check' specified for export "192.168.1.0/24:/home/cache/netboot".

Assuming default behaviour ('no_subtree_check').

NOTE: this default has changed since nfs-utils version 1.0.x

Debian和Ubuntu Linux的NFS配置介绍 /os/linux/200802/128786.html

NFS(Network File System, 网络文件系统)可以通过网络将分享不同主机(不同的OS)的目录——可以通过NFS挂载远程主机的目录, 访问该目录就像访问本地目录一样!

一般而言, 使用nfs能够方便地使各unix-like系统之间实现共享。 但如果需要在unix-like和windows系统之间共享, 就得使用samba了!

NFS运行在SUN的RPC(Remote Procedure Call, 远程过程调用)基础上, RPC定义了一种与系统无关的方法来实现进程间通信。 由此, NFS server也可以看作是RPC server.

正因为NFS是一个RPC服务程序, 所以在使用它之前, 先要映射好端口——通过portmap设定。 比如: 某个NFS client发起NFS服务请求时, 它需要先得到一个端口(port)。 所以它先通过portmap得到port number. (不仅NFS, 所有的RPC服务程序启动之前, 都需要设定好portmap)

在启动RPC服务(比如NFS)之前, 需要启动portmap服务!(关于nfs和portmap是否存在于当前系统, 看后面的"NFS安装"部分。

与NFS相关的几个文件, 命令

1、/etc/exports

对NFS卷的访问是由exports来批准, 它枚举了若干有权访问NFS服务器上文件系统的主机名。

bitscn_com

2、/sbin/exportfs

维护NFS的资源共享。 可以通过它重新设定 /etc/exports 的共享目录, 卸载NFS Server共享的目录或者重新共享等。

3、/usr/sbin/showmount

用在 NFS Server 端,而 showmount 则主要用在 Client 端。 showmount 可以用來查看 NFS 共享的目录资源。

4、/var/lib/nfs/xtab

NFS的记录文档: 通过它可以查看有哪些Client 连接到NFS主机的记录。

下面这几个并不直接负责NFS, 实际上它们负责所有的RPC

5、/etc/default/portmap

实际上, portmap负责映射所有的RPC服务端口, 它的内容非常非常之简单(后面详述)

6、/etc/hosts.deny

设定拒绝portmap服务的主机

7、/etc/hosts.allow

设定允许portmap服务的主机

安装NFS

Debian/Ubuntu上默认是没有安装NFS服务器的,首先要安装NFS服务程序:

$ sudo apt-get install nfs-kernel-server

(安装nfs-kernel-server时,apt会自动安装nfs-common和portmap)

这样,宿主机就相当于NFS Server.

同样地,目标系统作为NFS的客户端,需要安装NFS客户端程序。如果是Debian/Ubuntu系统,则需要安装nfs-common.

feedom.net

$ sudo apt-get install nfs-commmon

nfs-common和nfs-kernel-server都依赖于portmap!

配置NFS

由于NFS是一个RPC server程序。 而portmap是用来挂你RPC的端口号映射的。 所以先要配置portmap.

配置portmap

方法1: 编辑/etc/default/portmap, 将 -i 127.0.0.1 去掉。

方法2: $ sudo dpkg-reconfigure portmap , 对Should portmap be bound to the loopback address? 选N.

配置/etc/hosts.deny

(禁止仸何host(主机)能和你的NFS服务器进行NFS连接),加入:

### NFS DAEMONS

portmap:ALL

lockd:ALL

mountd:ALL

rquotad:ALL

statd:ALL

配置/etc/hosts.allow

允许那些你想要的主机和你的NFS服务器建立连接。下列步骤将允许仸何IP地址以192.168.2开头的主机(连接到NFS服务器上),也可以指定特定的IP地址。参看man页 hosts_access(5), hosts_options(5)。加入:

### NFS DAEMONS

portmap: 192.168.2.

lockd: 192.168.2. 网管网bitsCN_com

rquotad: 192.168.2.

mountd: 192.168.2.

statd: 192.168.2.

/etc/hosts.deny 和 /etc/hosts.allow 设置对portmap的访问。 采用这两个配置文件有点类似"mask"的意思。 现在/etc/hosts.deny中禁止所有用户对portmap的访问。 再在/etc/hosts.allow 中允许某些用户对portmap的访问。

运行 $ sudo /etc/init.d/portmap restart 重启portmap daemon.

配置/etc/exports

NFS挂载目录及权限由/etc/exports文件定义

比如我要将将我的home目录中的/home/zp/share目录让192.168.2.*的IP共享, 则在该文件末尾添加下列语句:

/home/zp/share 192.168.2.*(rw,sync,no_root_squash)

或者:/home/zp/share 192.168.2.0/24(rw,sync,no_root_squash)

192.168.2.* 网段内的NFS客户端能够共享NFS服务器/home/zp/share目录内容。且有读,写权限, 并且该用户进入/home/zp/share目录后的身份为root

最好加上sync, 否则 $ sudo exportfs -r 时会给出警告, sync是NFS的默认选项。

运行 $ showmount -e 查看NFS server的export list.

网管网bitsCN.com

若更改了/etc/exports, 运行 $ sudo exportfs -r 更新

运行 $ sudo /etc/init.d/nfs-kernel-server restart 重启nfs服务

/etc/exports实际上就是nfs服务器的核心配置文件了。 鸟哥的Linux私房菜列举了一些exports文件的写法。

测试NFS

可以尝试一下挂载本地磁盘(假设本地主机IP地址为:192.128.2.1,将

/home/zp/share挂载到/mnt)

$ sudo mount 192.168.2.1:/home/zp/share /mnt

运行 $ df 看看结果

$ sudo umount /mnt

注意被拷贝文件的读/写权限!

另外, 可以使用一定的参数:

使用加参数的办法:mount -o nolock,rsize=1024,wsize=1024,timeo=15 192.168.2.130:/tmp/ /tmp/

ubuntu9.04下nfs的设置使用

/User/begehau/Article/18822_1.htm

ARM9移植通常会用到网络来将bootloader和 linux的下载到开发板中去,在这当中通常会用到tftp或nfs, tftp的设置方法上篇文章已经介绍过了,这里将介绍下nfs的设置及测试方法。

1:sudo apt-get install nfs-kernel-server 下载安装nfs服务 2 : 配置/etc/exports (路径为你要共享的文件夹详细路径,自己替换) sudo gedit /etc/exports

--------------------------------------------------

路径 *(rw,sync,no_root_squash)

--------------------------------------------------

sudo exportfs -r 使刚配置的文件生效

3:修改portmap

sudo gedit /etc/default/portmap

将 -i 127.0.0.1 去掉

sudo gedit /etc/hosts.deny

加上以下内容:

--------------------------------------------------

### NFS DAEMONS

portmap:ALL

lockd:ALL

mountd:ALL

rquotad:ALL

statd:ALL

--------------------------------------------------

sudo gedit /etc/hosts.allow

加上以下内容,ip地址自己相应修改:

--------------------------------------------------

### NFS DAEMONS

portmap:192.168.1.

lockd:192.168.1.

mountd:192.168.1.

rquotad:192.168.1.

statd:192.168.1.

--------------------------------------------------

4:修改要共享文件夹的属性

sudo chmod 777 路径+文件夹名

5:重启NFS服务

sudo

sudo /etc/init.d/nfs-kernel-server restart

sudo /etc/init.d/portmap restart

6:在本机上测试是否开始正常工作

sudo mount 192.168.1.*:路径 /mnt

ls -l /mnt

如果出现相应信息则证明挂载成功,否则如果出现0信息则是挂载失败

精准设计Fedora nfs中port /c?m=9d78d513d98715ee4fece4690c65c0666805d33f608a96027fa5ce0ac4384c413626bee6613510758592383c50f85e5c9bac6233200351eadbdf883b9ae7cb7472cd7b23716c914164c418df9b187xxxxxxxxa98af0ee7cbf226d4ee8cdc851215884404099dedce1f4503ca18b04976a5f1d95f15284cedab276588082b34ec6306ed16a7b72f6f0386fdd64b4cb470963e4f&p=cb57df15d9c72dfc57eecd644a&user=baidu

学习Fedora时,你可能会遇到Fedora nfs问题,这里将介绍Fedora nfs问题的解决方法,在这里拿出来和大家分享一下。vmware又装了一个fedora7,这次装的是gcome,界面超漂亮,但是连一把Fedora nfs居然找不到port.。又回到kde的那个系统(同一个xp下,用同一个vmware打开),这样就成功了。我赶紧snapshot了一下,保留下这个正确的状态,对比看看到底问题出在哪里。

正确状态:

param set linux_cmd_line "console=ttySAC0 root=/dev/nfs

nfsroot=192.168.1.1:/yctek/root

ip=192.168.1.12:192.168.1.1:192.168.1.1:255.255.255.0::eth0:off" eth0是briaged

xp主机ip 192.168.1.13 但是从虚拟机里ping不通,从超级终端中ping 192.168.1.1通,但是1.13也不通,总之,ARM和Fedora nfs 是可以互相ping通的(两个Fedora nfs都能ping通,但是还是问题依旧)/etc/exports 中的内容:/yctek/root *(rw,

sync,no_root_squash) vmware在启动两个Fedora nfs时eth0都failed,但是能成功的还是能成功没什么影响我在两个Fedora nfs下试/etc/rc.d/init.d/portmap start 和serivce portmap start这两个命令,结果两个系统都不认,并且在setup里也只有nfs而无portmap了,这和redhat是不一样的。但是该成功的还成功,看来Fedora nfs里portmap已经默认了。

找了半天也没找出问题,我先去vpc下redhat中看一下吧,这边的问题是能找到portmap,但是console就是active 不了,这应该不是nfs的问题了。先把/yctek/root换一次血试试。我像在vmware下一样,用.iso把所需的root文件考过来,就在执行 tar jxvf recover_system_pack.tar.bz2时,出现了和在Fedora nfs下类似的时间戳警告,

执行一下,果然有影响:

IP-Config: Complete:

device=eth0, addr=192.168.1.12, mask=255.255.255.0, gw=192.168.1.1,

host=www, domain=, nis-domain=yctek.com,

bootserver=192.168.1.1, rootserver=192.168.1.1, rootpath=

Looking up port of RPC 100003/2 on 192.168.1.1

Looking up port of RPC 100005/1 on 192.168.1.1

Root-NFS: Server returned error -13 while mounting /yctek/root

VFS: Unable to mount root fs via NFS, trying floppy.

VFS: test name =

VFS: fs_name =

VFS: fs_name =

VFS: fs_name =

VFS: fs_name =

VFS: tried fs_name = err= -2

VFS: Cannot open root device "nfs" or unknown-block(2,0)

Please append a correct "root=" boot option

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0) Fedora nfs一波未平一波又起,先放放。在原来那个root放回/yctek,报错信息是这样的: Freeing init memory: 176K

/etc/init.d/rcS: 20: /bin/hostname: Permission denied

Please press Enter to activate this console.

Bummer, could not run '/bin/sh': Permission denied

Please press Enter to activate this console.

看来问题还是出在/etc/init.d/rcS这个文件里,和我vmware里那个比比,结果是一模一样,看来问题不在这里。

我又在那个kde中,把.iso中的recover_system拷根目录,用tar jxvf 释放到yctek里,Fedora nfs也出现了时间戳警告,不过和red hat 中的警告很不一样,开超级终端试一下,居然active成功了。不过我还是担心这个root有问题所以没有执行recover_system

嵌入式linux的NFS开发环境的建立 /bbs/thread-985579-1-1.html

在应用程序开发环节,NFS方式比ftp方式的执行效率要高,因为它不需要将linux server端的程序下载到嵌入式目标系统就可以调试。下面先将NFS建立的详细过程写一下,然后举一个简单的应用程序开发实例来比较ftp方式和nfs方式的不同。

1 建立NFS开发环境

嵌入式linux的NFS开发环境包含着两个方面:一是linux server端的NFS Server支持;二是target board的NFS Client支持。

1.1 linux server端

1.1.1 以root的身份登录,编译共享目录的配置文件exports,指定共享目录及其权限。 #vi /etc/exports

在该文件中添加:

/home/lqm(共享目录) 192.168.1.*(rw,sync,no_root_squash)

添加的内容表示允许IP范围在192.168.1.*的计算机以读写的权限来访问共享目录

/home/lqm。

【注:参数说明如下:

rw---读/写权限。如果设定只读权限,则设为ro。但是一般情况下,为了方便交互,要设置为rw。

sync--数据同步写入内存和硬盘。

no_root_squash--此参数用来要求服务器允许远程系统以它自己的root特权存取该目录。就是说,如果用户是root,那么他就对这个共享

目录有root的权限。很明显,该参数授予了target

board很大的权利。安全性是首先要考虑的,可以采取一定的保护机制,在下面会讲一下保护机制。如果使用默认的root_squash,target

board自己的根文件系统可能有很多无法写入,所以运行会受到极大的限制。在安全性有所保障的前提下,推荐使用no_root_squash参数。】

1.1.2 起用保护机制

可以通过设定/etc/hosts.deny和/etc/hosts.allow文件来限制网络服务的存取权限。 ***/etc/hosts.deny***

portmap:ALL

lockd:ALL

mountd:ALL

rquotad:ALL

statd:ALL

***/etc/hosts.allow***

portmap:192.168.1.100

lockd:192.168.1.100

mountd:192.168.1.100

rquotad:192.168.1.100

statd:192.168.1.100

同时使用这两个文件就会使得只有ip为192.168.1.100的机器使用NFS服务。你的target board的ip地址设定为192.168.1.100,这样就可以了。

1.1.3 启动

首先要启动portmapper(端口映射)服务,这是NFS本身需要的。

#/etc/init.d/portmap start

然后启动NFS Server。此时NFS会激活守护进程,然后开始监听客户端的请求。 #/etc/init.d/nfs start

NFS Server启动后,还要检查一下linux server的iptables等,确定没有屏蔽NFS使用的端口和允许通信的主机。

可以首先在linux server上面进行NFS的回环测设。修改/etc/hosts.allow,把ip改为linux server的ip地址,然后在linux server上执行命令:

#mount -t nfs :/home/lqm /mnt

#ls /mnt

如果NFS Server正常工作,应该在/mnt下面看到共享目录/home/lqm的内容。

1.2 target board端的client

1.2.1 嵌入式linux内核应该支持NFS客户端。

内核配置时,选择如下:

File system--> Network File Systems-->

选中NFS System support和Provide NFSvs client support,然后保存退出,重新编译内

核,将生成的zImage重新下载到target board。

1.2.2 在target board的linux shell下,执行下列命令来进行NFS共享目录的挂载。 #mkdir /mnt/nfs

#mount -o nolock -t nfs :/home/lqm /mnt/nfs

#ls /mnt/nfs

由于很多嵌入式设备的根文件系统中不带portmap,所以一般都使用-o

nolock参数,即不使用NFS文件锁,这样就可以避免使用portmap。如果顺利,在/mnt/nfs下,就可以看到linux

server的共享文件夹下的内容了,而且两个文件夹内的修改是同步的。

2 应用程序实例

编写一个简单的C程序test.c

-------------------------------------------

/*This is a test program.*/

int main(void)

{

int i;

for(i=0;i

printf("Hello World %d times.\n",i);

return 0;

}

-------------------------------------------

编译该程序:

#arm-linux-gcc -o test test.c

2.1 FTP方式

首先将test下载到target board。启动target board的linux,在超级终端中执行: #cd /var

#ftp

ftp>bin //以binary mode传输文件

ftp>get test

ftp>exit

然后修改文件属性:

#chmod +x test

#./test

这时可以查看结果了。

2.2 NFS方式

在target board端挂载linux server的共享输出目录,并且运行程序。

#mkdir /mnt/nfs

#mount -o nolock -t nfs :/home/lqm /mnt/nfs

#ls /mnt/nfs

这时应该可以显示linux server的共享目录的内容。然后执行:

#./test

3 总结

这两种方式在应用程序不是特别复杂时区别不是很大,但是当开发程序比较复杂时,采用NFS方式显然效率要高得多。完成应用程序得开发,调试好后就可以下载

到嵌入式目标板的flash文件系统,或者直接编译到嵌入式linux内核并且烧写到flash,

从而最终成为一个独立的嵌入式应用程序。

--------------------------------------- 参考书目:《building embedded linux systems》

《嵌入式linux系统开发详解--基于EP93XX系列ARM》

这两本书在过程上都比较细致,很适合初学者学习。在实践熟悉的基础上,提升理论高度,这是我所认可的学习方法。

ubuntu 9.10 和mirco2440建立nfs链接,使用其他开发板也可借鉴( 转载) /lastnightcode/blog/item/d342b2bd39b45f0019d81f38.html

首先现配置下ubuntu 9.10服务器

1.在ubuntu 9.10上安装nfs服务器

sudo apt-get install nfs-kernel-server

2.配置该服务器

sudo gedit /etc/exports

在打开的空的文件中,添加下面这句话

/opt/FriendlyARM/mini2440/root_qtopia *(rw,sync,no_root_squash)

/opt/FriendlyARM/mini2440/root_qtopia是ubuntu 9.10的共享目录

*(rw,sync,no_root_squash)中,*表示所有客户机都可以挂载上述共享目录,rw 表示挂接此目录的客户机对该目录有读写的权力,no_root_squash 表示允许挂接此目录的客户机享有该主机的 root 身份。

3.启动服务

sudo /etc/init.d/nfs-kernel-server start

4.安装串口调试软件minicom(命令行界面)或者cutecom(图形界面),通过软件源更新 sudo apt-get install minicom

sudo apt-get install cutecom

在ubuntu 9.10上的工作就完成了

下面是在开发板上要做的工作了

开发板的系统可以选择从nfs共享文件夹启动或者是从开发部内部的flash中启动。 这里选择从nfs共享文件夹启动。

1.从ubuntu 9.10 的命令行中输入cutecome,启动cutecome。

2.将micro2440开发板的左下角的开关打到nor,从nor启动。

3.在cutecome的输入端输入q,并回车。

4.进入了micro2440的Supervivi,在cutecom的输入端输入下面的命令行:

param set linux_cmd_line "console=ttySAC0 root=/dev/nfs

nfsroot=192.168.1.101:/opt/FriendlyARM/mini2440/root_qtopia

ip=192.168.1.230:192.168.1.101:192.168.1.2:255.255.255.0::eth0:off"

其中 ,param set linux_cmd_line 是设置启动 linux 时的命令参数。其各参数的含义如下: nfsroot 是自己开发主机的 IP 地址。

“ip=”后面:

第一项(192.168.1.230)是目标板的临时 IP(注意不要和局域网内其他 IP 冲突); 第二项(192.168.1.101)是开发主机的 IP;

第三项(192.168.1.2)是目标板上网关(GW)的设置;

第四项(255.255.255.0)是子网掩码;

第五项是开发主机的名字(一般无关紧要,可随便填写)

eth0 是网卡设备的名称。

5.输入boot 然后回车。

6.micro2440从ubuntu 9.10主机的/opt/FriendlyARM/mini2440/root_qtopia这里启动,这个是事先编译好的环境。

7.启动后,cutecom的输入端口等价于开发板的命令行。

另外,如果不想使用nfs共享目录的方法启动开发板的,而采用开发板自己的内部flash启动,在开发的时候还想启用ubuntu 9.10上的共享目录,用共享目录上的资源来进行开发,则

1.确保nfs服务已经打开

sudo /etc/init.d/nfs-kernel-server start

2.在目标板的linux启动后的命令行里输入

mount -t nfs -o nolock 192.168.1.101:/opt/FriendlyARM/mini2440/root_qtopia /mnt 192.168.1.101是主机ubuntu 9.10的地址。就会将ubuntu 9.10的

/opt/FriendlyARM/mini2440/root_qtopia目录挂载到开发板的/mnt下,注意,如果/mnt目录事先没建 立好会报错,可以用mkdrir mnt来建立。对于使用别的开发板的,可以采用这种方法来开发。

Ubuntu9.10在ARM上建立NFS服务 /dongliqiang2006/archive/2010/01/07/5152131.aspx

前言,我参照别人的做法,也是网上普遍做的方法,在linux下构建nfs服务。

具体而言:在ubuntu9.10构建nfs服务器端,在ARM上构建客户端,这样便于开发。 先引用别人的做法:

1、进行NFS服务器端与客户端的安装:

sudo apt-get install nfs-kernel-server nfs-common portmap

安装客户端的作用是可以在本机进行NFS服务的测试。

2、配置portmap

两种方法任选一种就可以:

(1):sudo gedit /etc/default/portmap

注释掉 -i 127.0.0.1

(2)sudo dpkg-reconfigure portmap

运行后选择“否”

3、配置挂载目录和权限

#sudo gedit /etc/exports

我的配置如下:

# /etc/exports: the access control list for filesystems which may be exported # to NFS clients. See exports(5).

#

# Example for NFSv2 and NFSv3:

# /srv/homes hostname1(rw,sync) hostname2(ro,sync)

#

# Example for NFSv4:

# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt)

# /srv/nfs4/homes gss/krb5i(rw,sync)

#

/home/nfsboot 192.168.1.*(rw,sync,no_root_squash)

解释一下:

#后面的都是解释

/home/nfsboot是NFS的共享目录,*表示任何IP都可以共享这个目录,你可以改为受限的IP,rw表示的是权限,sync是默认的。

4、更新exports文件

只要你更改了/etc/exports, 你不可以通过sudo exportfs -r 来更新 这个文件

5、重启NFS服务

sudo /etc/init.d/nfs-kernel-server restart 重启nfs服务

6、进行测试

尝试一下挂载本地磁盘(我的linux系统IP为202.198.137.18,将/home/nfsboot挂载到/mnt)

$ sudo mount 192.168.1.7:/home/nfsboot /mnt

运行 $ df 看看结果

$ sudo umount /mnt

5、嵌入式系统中使用NFS服务挂载(来自网上)

嵌入式要mount 的时候 使用

mount -t nfs -o nolock 192.168.1.7:/home/nfsboot /mnt

PS: 理论上,就可以了,因为我以前搞国,也没有什么障碍。但是现在问题来了,以前的系统版本是8。04,而现在是9。10,结果死活是运行不了。冥冥之中找了一两天,晕死,我老是怀疑自己那个地方敲错了。

知道昨天晚上,看到一篇9。10的nfs服务构建,才看到:

注意,上面的主机IP不能使用*来通配,否则在客户机上会出现访问拒绝,但是如果我们要设置局域网访问呢? 怎么办,使用子网掩码例如:10.1.60.0/255.255.254.0即可让10.1.60.*和10.1.61.*都可以访问,还可以使用 10.1.60/23这种方式类确定子网。 说明什么?以前的那种方式是不行的,我就指定一个

/home/nfsboot 192.168.1.7(rw,sync,no_root_squash)//本机ip,现用来测试嘛 OK!成了!!!

ARM上面的nfs支持,这里不说了,我的博客里面有。在从arm上面挂载,成功了!

外沿: 从中我也学会了nfs相关的一些知识,例如

题:1. sudo mount -t nfs 192.168.1.7:/home/nfsboot /mnt

mount.nfs: access denied by server while mounting 192.168.1.7:/home/nfsboot 因为我是指定一个网段的。

2.ladeng@ladeng-laptop:~$ showmount -e

showmount: RPC: Program not registered

mountd起没起

解决办法:

ladeng@ladeng-laptop:~$ host 127.0.0.1

1.0.0.127.in-addr.arpa domain name pointer localhost.

ladeng@ladeng-laptop:~$ host 127.0.0.1 //禁用无线

;; connection timed out; no servers could be reached

事实是:即使指定一个ip,可一用nfs了,但是此法仍然不行。why??学习中

3.ladeng@ladeng-laptop:~$ df

文件系统 1K-块 已用 可用 已用% 挂载点

/dev/sda10 17061584 5290556 10904324 33% /

tmpfs 767520 0 767520 0% /lib/init/rw

varrun 767520 128 767392 1% /var/run

varlock 767520 0 767520 0% /var/lock

udev 767520 172 767348 1% /dev

tmpfs 767520 84 767436 1% /dev/shm

lrm 767520 2192 765328 1%

/lib/modules/2.6.28-17-generic/volatile

/dev/sda9 241116 45117 183551 20% /boot

/dev/sda8 8111964 1502092 6197808 20% /home

/dev/sda6 38538496 21477824 17060672 56% /media/MEDIA

用来查看挂载情况

至此,此问题告一段落,开始着手真正的程序开发!

在Ubuntu 9.10下怎么设置ip

本人第一次发帖,分类选了安装配置教程,请版主莫见怪,如有问题,可移到其他版块! 虽然是菜鸟问题,只能怪自己太菜了!

在公司电脑的虚拟机上安装了Ubuntu9.10系统,但必须通过公司的局域网来连接外网,而通过上网则必须通过设定ip才能访问。这个弄了很长时间,一直连接不上!希望高手能给指导一下!谢谢~~

安装配置nfs服务器

点击Configure VPN来配置

安装配置nfs服务器

然后选择Wired->Add来配置IP

不知道这种做法对还是不对,正确的应该怎么来配置?是否还可以通过终端来配置呢? 在线等高手来解答!

应该就是这样配置的

在终端输入ifconfig eth0 ip地址

可以修改为静态ip地址,不过重启后就不是了

从nfs下启动失败?

Looking up port of RPC 100003/2 on 192.168.0.1

portmap: server 192.168.0.1 not responding, timed out

Root-NFS: Unable to get nfsd port number from server, using default

Looking up port of RPC 100005/1 on 192.168.0.1

portmap: server 192.168.0.1 not responding, timed out

Root-NFS: Unable to get mountd port number from server, using default

mount: server 192.168.0.1 not responding, timed out

Root-NFS: Server returned error -5 while mounting /home/armlinux/root

VFS: Unable to mount root fs via NFS, trying floppy.

request_module[block-major-2]: Root fs not mounted

VFS: Cannot open root device "nfs" or 02:00

Please append a correct "root=" boot option

可能是你的NFS服务器没有配置好

可能是你的防火墙没有造成的,你可以用这个service iptables stop这个命令把防火墙关掉试下

是否IP地址设置不当或未设置,导致网络就无法连通;

2. 是否NFS服务器设置不当或未启动相应的服务;

3. 防火墙的问题。

FreeBSD网络文件系统(NFS)

amd_flags="-a /net -c 1800 -k i386 -d my.domain -l syslog /host /etc/amd.map" 这个参数使用了另一些有用的参数,-k参数用于运行amd的计算机内核体系,-d参数用于定义计算机的domain名,修改这个参数可以帮助amd侦测 计算机所在的domain名字,因此要修改为计算机实际的域名,-l参数定义审计记录文件,缺省使用syslog。amd的设置相当复杂,这里只是通过一 个映射文件来提供针对一个目录的自动安装维护,实际上amd可以同时维护多个目录,这就需要设置一个配置文件,来定义多个监视目录。对于一般的目的,使用 命令行指定一个映射就够用了。

NFS服务器

为了使得其他系统能使用FreeBSD上的硬盘空间,就需要运行NFS服 务进程。NFS服务器使用了几个守护进程用于提供NFS服务。最基本的提供NFS服务的系统至少要运行nfsd和mountd 守护进程,nfsd用于处理NFS协议,而mountd用于处理客户的mount请求。此外,由于NFS使用RPC 远程调用,因此portmap、rpc_lockd、rpc_statd等RPC守护进程都可以用来帮助提供更高效的服务。

这些守护进程一般应该在系统启动时载入,因此需要在rc.conf中更改相关的参数: nfs_server_enable, rpc_statd_enable, rpc_lockd.enable和portmap_enable参数将对应相应的守护进程。

那么系统重起之后,就有了能共享文件出去的能力,余下的工作只是用来配置需要共享那些目录,以及进行何种限制以保证安全性,这些设置工作需要更改/etc/exports文件: # cat /etc/exports

/usr/src/sys -maproot=daemon ns host2

/usr/ports -ro -network 192.168.1.0

从这个例子中可以看出exports文件的格式,首先是定义要共享出去的文件目录,必须使用绝对路径,而不能使用是符号连接。后面就是对这个目录进行访 问限制的参数,用于保证安全性。第一行设置中,将/usr/sys/src目录共享出去,但限制客户机上的root用户等价于本机上的daemon用户, 以避免客户机上的root用户拥有这个服务器上的root权力,进行非法操作,此后的ns和host2参数是主机名,这就限制只有ns和host2才能共 享这个/usr/sys/src目录。第二行设置共享了/usr/ports目录,但限制为只允许读取,并且也只有192.168.1.0网络上的计算机 才能访问这个共享目录。

目录的访问限制中具有多种选项,这些选项对于保证NFS的安全性相当重要。

-ro---以只读形式输出文件系统,远程客户只能读不能写这个目录

-maproot---将客户机上的root用户映射为服务器中的某个用户和族,也可以使用UID 和GID的形式,如maproot=root,maproot=10,或maproot=10:1。这个设置选项可以用来保护服务器上的文件系统不被客户 中的使用者非法访问。

-mapall---将客户上的所有用户都映射为本机的某个用户,使用形式与maproot相同。它同样也是用于保护服务器文件系统的安全性的。

-alldirs---允许安装该目录下的所有子目录。

-network---允许一定网络上的计算机可以装载这个文件系统。

-mask---用于修订 network中的网络号使用的缺省掩码,可定义对网络的一部分开放文件系统。

当更改了exports文件之后,需要向mountd发送SIGHUP信号,使其重读exports文件的内容。

由于使用nfsiod能够提升系统性能,对于NFS客户计算机,就可以在系统启动时执行这个守护进程。这需要在FreeBSD的系统配置文件rc.conf中设置nfs_client_enable参数的值为"YES",系统启动时就自动执行nfsiod。

使用fstab

对于经常用到的NFS文件系统,并且提供NFS服务的Unix主机也非常可靠。那么就可以将这些系统加入/etc/fstab文件中,在系统启动时自动 安装该NFS文件系统。由于NFS文件系统不在本地,因此在服务器不能提供NFS服务时就会造成故障,系统会遇到启动障碍,而不同正常启动。因此对于一台 不稳定的服务器系统,最好不要使用/etc/fstab来装载NFS文件系统,或者在/etc/fstab的设置参数选项中使用noauto参数,不让系 统自动装载这个文件系统。

# Device Mountpoint FStype Options Dump Pass# /dev/wd0s3b none swap sw 0 0 /dev/wd0s3a / ufs rw 1 1 /dev/wd0s3f /usr ufs rw 2 2 /dev/wd0s3e /var ufs rw 2 2 proc /proc procfs rw 0 0 /dev/wcd0c /cdrom cd9660 ro,noauto 0 0 nfssrv:/exports /nfs nfs ro,noauto 0 0

/etc/fstab文件中的第四列为安装文件系统时使用的安装参数,如果增加了noauto选项,这样系统启动时并不立即安装这个文件系统,而是直到 管理员输入mount命令之后才进行安装。但是此时mount命令的参数就可以比较简单,对应前面安装nfssrv的命令,可以简化为 mount /nfs,mount会查看fstab文件寻找匹配的行,以使用正确的参数安装文件系统。

自动安装守护进程AMD

为了更方便的使用NFS,可以使用自动安装软件amd(automounter daemon,自动安装守护进程)自动维护文件系统,这就使在访问具体目录时能够立即安装该文件系统,而经过一端时间间隔内没有任何访问发生,再自动卸载这个文件系统。

amd需要指定一个进行监视的空目录,所有要安装的文件系统与这个目录下的子目录一一对应;它还需要一个维护用的空目录,用于安装远程文件系统,而监视 目录中的子目录将是正确安装的文件系统的符号连接。这些子目录和符号连接并不需要管理员创建,而是要在映射文件中指明,由amd来创建和维护。当监视子目 录被访问时,amd守护进程就会安装相应的文件系统并建立正确的连接,使得目录和文件能被正常访问。

通常使用/etc/amd.map用作amd的映射文件,这个文件就用于告诉amd子目录与文件系统的对应关系。下面是一个最简单的映射文件amd.map:

# cat /etc/amd.map

/defaults type:=host;fs:=${autodir}/${rhost};rhost:=${key}

nfssrv typs:=nfs;rhost:=nfssrv;rfs:=/exports

第一行使用/defaults定义缺省的设置,type参数用于定义维护的文件系统的类型, host类型为通过NFS安装远程服务器中直接在exports文件中输出的目录,fs参数为amd安装文件系统使用的安装位置,变量autodir为 amd维护安装文件系统的目录,而rhost变量为远程计算机的名字,需要进行设置。缺省的rhost变量设置为${key}的值,当用户访问amd监视 目录的子目录时,key就被设置为这个子目录的名字。通过这个缺省设置,当用户访问amd监视目录的任意一个子目录时,这个子目录名就被转换为远程NFS 服务器的名字,amd就自动将这个服务器共享的目录安装到fs定义的安装位置上。

第二行设置 一个专有的映射关系,第一列也是amd设置的key值,当访问对应的子目录时就启动这个设置,这一个安装点为nfs类型,nfs类型与host略有不 同,host类型只需要rhost 定义,而查询服务器上的共享出的目录来自动安装,而nfs类型则要配置者手工指定远程主机共享的目录,这就需要设置rfs参数。通常在自动维护的计算机数 量较少时,使用nfs类型更明确,否则可以使用host类型以简化配置工作。

设置好映射文件之后,就可以运行amd守护进程了。

# amd -a /net -c 1800 /host /etc/amd.map

# ls /host

# cd /host/nfssrv

# ls -l /host

nfssrv

上面的amd的命令参数为,第一个-a参数告诉amd将真实的文件系统安装到/net这个临时目录下,在执行amd之前必须建立这个空目录,这个目录将 被amd作为autodir变量设置映射关系;-c参数用于指明超时参数,经过这个时间间隔内没有访问这个文件系统上的内容,就卸载已安装的文件系统,设 置为1800秒;而/host目录为amd监视用户访问的目录,访问这个目录中的子目录,就会触发amd守护进程,例如上例中使用cd /host/nfssrv访问nfssrv子目录,那么amd 就将启动,将nfssrv设置为key值,因此amd就读取/defauts设置的缺省参数和nfssrv这个key值对应的参数,然后执行自动安装过 程。最后一个参数就是指定映射文件为/etc/amd.map。

因此,amd的处理过程可以总结为:用户首先访问/host目录下的子 目录,触发amd;amd 使用子目录的名字作为key值,读取相应映射文件中的设置,将文件系统安装到/net目录下的相应目录上(fs定义的目录);最后amd在/host目录 下以key值建立符号连接,指向已经安装到/net 目录下的真实文件系统,使得用户访问子目录的操作能够正常完成。amd主要是和NFS结合使用,用于维护多台服务器的用户和文件目录的一致性,然而amd 不仅仅能用于维护NFS文件系统,同样也可以用于维护其他种类的文件系统,如CD9660、本地文件目录的连接,以及扩展到运行一个程序等方式自动安装相 应的文件系统,对于这些非NFS文件系统,就需要使用不同的type参数定义不同的类型。例如可以使用amd将所有用户的个人目录维护在同一个路径下,而 不是事实上分布在不同目录和主机上,等等。此时,amd.map应为:

/defaults opts:=rw,grpid,nosuid,nodev

wb host==wb;type:=link;fs:=/home/wb

cd opts:=ro;host==wb;type:=cdfs;dev:=/dev/wcd0c

dos host==wb;type:=program;mount:="/sbin/mount_msdos mount_msdos /dev/wd0s1

${path}"

这个映射文件中的缺省设置中首先使用opts设置了几个安装选项,用于安装文件系统时使用。由于这个例子中维护的文件系统NFS文件系统,因此没有使用变量定义相应的参数,而且在维护的文件系统不多的条件下,可以直接定义各个自动安装所需要的各个参数。 第一个设置为是一个link类型,它必须在主机为wb(本地主机的名字,amd将自动设置 host变量)时才有效。这个类型只是用于建立连接,因此就没有必要定义rhost和rfs,而通过 fs定义需要建立连接的目标。因此当访问/host/wb目录时,amd就自动建立一个到/home/wb的符号连接。

第二个设置为 cdfs类型,这用于访问时自动安装CDROM,它通过dev参数设置安装使用的设备文件。第三个设置为program类型,当访问/host/dos目 录时,amd会自动执行后面的mount_msdos 程序,装载上dos分区,安装点被使用变量path传递给外部程序的参数。 为了在启动时自动执行amd,需要修改rc.conf中的设置,更改其中的选项amd_enable为”YES”, amd的执行参数在amd_flags项中设置,缺省为:

amd_flags="-a /net -c 1800 -k i386 -d my.domain -l syslog /host /etc/amd.map" 这个参数使用了另一些有用的参数,-k参数用于运行amd的计算机内核体系,-d参数用于定义计算机的domain名,修改这个参数可以帮助amd侦测 计算机所在的domain名字,因此要修改为计算机实际的域名,-l参数定义审计记录文件,缺省使用syslog。amd的设置相当复杂,这里只是通过一 个映射文件来提供针对一个目录的自动安装维护,实际上amd可以同时维护多个目录,这就需要设置一个配置文件,来定义多个监视目录。对于一般的目的,使用 命令行指定一个映射就够用了。

NFS服务器

为了使得其他系统能使用FreeBSD上的硬盘空间,就需要运行NFS服 务进程。NFS服务器使用了几个守护进程用于提供NFS服务。最基本的提供NFS服务的系统至少要运行nfsd和mountd 守护进程,nfsd用于处理NFS协议,而mountd用于处理客户的mount请求。此外,由于NFS使用RPC 远程调用,因此portmap、rpc_lockd、rpc_statd等RPC守护进程都可以用来帮助提供更高效的服务。

这些守护进程一般应该在系统启动时载入,因此需要在rc.conf中更改相关的参数: nfs_server_enable, rpc_statd_enable, rpc_lockd.enable和portmap_enable参数将对应相应的守护进程。

那么系统重起之后,就有了能共享文件出去的能力,余下的工作只是用来配置需要共享那些目录,以及进行何种限制以保证安全性,这些设置工作需要更改/etc/exports文件: # cat /etc/exports

/usr/src/sys -maproot=daemon ns host2

/usr/ports -ro -network 192.168.1.0

从这个例子中可以看出exports文件的格式,首先是定义要共享出去的文件目录,必须使用绝对路径,而不能使用是符号连接。后面就是对这个目录进行访 问限制的参数,用于保证安全性。第一行设置中,将/usr/sys/src目录共享出去,但限制客户机上的root用户等价于本机上的daemon用户, 以避免客户机上的root用户拥有这个服务器上的root权力,进行非法操作,此后的ns和host2参数是主机名,这就限制只有ns和host2才能共 享这个/usr/sys/src目录。第二行设置共享了/usr/ports目录,但限制为只允许读取,并且也只有192.168.1.0网络上的计算机 才能访问这个共享目录。

目录的访问限制中具有多种选项,这些选项对于保证NFS的安全性相当重要。 -ro---以只读形式输出文件系统,远程客户只能读不能写这个目录

-maproot---将客户机上的root用户映射为服务器中的某个用户和族,也可以使用UID 和GID的形式,如maproot=root,maproot=10,或maproot=10:1。这个设置选项可以用来保

护服务器上的文件系统不被客户 中的使用者非法访问。

-mapall---将客户上的所有用户都映射为本机的某个用户,使用形式与maproot相同。它同样也是用于保护服务器文件系统的安全性的。

-alldirs---允许安装该目录下的所有子目录。

-network---允许一定网络上的计算机可以装载这个文件系统。

-mask---用于修订 network中的网络号使用的缺省掩码,可定义对网络的一部分开放文件系统。

当更改了exports文件之后,需要向mountd发送SIGHUP信号,使其重读exports文件的内容。

更多相关推荐:
服务范文

前期物业管理服务合同范本20xx年11月18日前期物业管理服务合同范本简介根据有关法律法规在自愿平等协商一致的基础上甲方将物业委托乙方实行物业管理订立本合同前期物业管理服务合同范本正文开始gtgt根据有关法律法...

售后服务范文

一售前服务公司非常重视新产品的开发工作本着使用一代储备一代研制一代的指导方针为配合潜在市场的开发经常组织相关人员进行调研积极走访用户了解具体情况以及对变压器的特殊要求及时掌握用户所需并与用户及其设计部门积极配合...

信息服务范文

校园信息服务中心华中最大的高校信息咨询发布平台20xx年校园营销从此进入低成本高效率时代1一校园营销现状高成本低效率重复建设每家公司都花重金自建渠道有成有败并且败者居多大多数公司在校园市场并不赚钱导致这一结果的...

服务检查范文

用心服务至诚至真交通银行一直是业界服务的优秀标兵我们注重的就是用微笑服务带给每一位客户家的温馨期待而来满意而归随着金融市场的不断发展银行业竞争不断加剧各银行所提供的金融产品也日趋同质化在越来越严峻的挑战面前交通...

纳税服务范文

随着世界经济一体化进程的不断加快以及我国社会主义市场经济体系不断完善和政府职能和角色的转变税务部门作为政府重要的职能部门向纳税人提供优质的税收服务已成为一项重要的基础工作在新的历史条件下如何以科学发展观为指导如...

生活服务业范文

一生活性服务业在国民经济中的地位和作用生活性服务业是服务经济的重要组成部分是国民经济的基础性支柱产业它直接向居民提供物质和精神生活消费产品及服务其产品服务用于解决购买者生活中非生产中的各种需求生活性服务业主要包...

优质服务心得体会范文

五月八日,黄冈市农村信用社20xx年第一期优质服务培训班正式开班,我有幸成为九十八名受训员工当中的一名。通过聆听张晓红老师的讲课,我对优质服务有了更深层次的认识。以前认为“只要对客户微笑,认真办理业务”就算是优…

技术服务合同书范本

合同编号02483泰丰煤矿安全专篇审核技术服务合同项目名称泰丰煤矿安全专篇审核技术服务委托方甲方王有才受托方乙方刘建明签订时间20xx年2月20日签订地点内蒙古呼和浩特市大学西路学府康都C座2层有效期限20xx...

服务等于成功

服务等于成功邹金宏致服务员的一封信尊敬的从事服务工作的朋友们大家好有一次我在讲课中问请大家想一想一个人或一个企业能成功是什么原因最大的最关键的原因是什么有的回答是有能力又有的回答是自信是管理得好我说大家说的都很...

担当敬业服务范文

爱岗敬业争创优先如果你是一滴水你是否滋润了一寸土地如果你是一线阳光你是否照亮了一分黑暗如果你是一颗螺丝钉你是否永远坚守你的岗位这是雷锋日记里的一段话它告诉我们无论在什么样的岗位都要发挥最大的潜能做出最大的贡献爱...

20xx个人技术服务合同范本

20xx个人技术服务合同范本个人技术服务合同范本由第一公文网整理当事人一方以技术知识为另一方解决特定技术问题所订立的合同下面是小编整理的个人技术服务合同范文个人技术服务合同范本项目名称委托方甲方服务方乙方签订地...

优质服务月演讲稿

尊敬的各位领导业主们大家好我今天演讲的题目是以优质的服务打造优质的物业保障体系如果你是一滴水你是否滋润了一寸土地如果你是一线阳光你是否照亮了一分黑暗如果你是一颗螺丝钉你是否永远坚守你的岗位这是雷锋日记里的一段话...

服务(56篇)