处理器 :ARM S3C2410
Linuc版本:Debian 4.0

一、搭建NFS服务

1、安装
服务器端安装
在Debian系统下安装NFS是相当简单的,在NFS服务器上执行下面的命令即 可
# aptitude install   nfs - common nfs - kernel - server portmap
在客户端则需要安装:
# aptitude install   nfs - common portmap
2、服务的启动停止与重启
# /etc/init.d/nfs-kernel-server start
# /etc/init.d/nfs-kernel-server stop
# /etc/init.d/nfs-kernel-server restart

3、服务器端配置
创建共享目录
# mkdir / home / share
# chown nobody.nogroup
/ home / share
创建或修改/etc/exports文件
这个文件的内容非常简单,每一行由抛出路径,客户名列表以及每个客户名后紧跟的访问选项构成:
[共享的目录] [主机名或IP(参数,参数)]
其中参数是可选的,当不指定参数时,nfs将使用默认选项。默认的共享选项是 sync,ro,root_squash,no_delay。
当主机名或IP地址为空时,则代表共享给任意客户机提供服务。
当将同一目录共享给多个客户机,但对每个客户机提供的权限不同时,可以这样:
[共享的目录] [主机名1或IP1(参数1,参数2)] [主机名2或IP2(参数3,参数4)]
下面是一些NFS共享的常用参数:
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






配置文件/etc/exports内容如下:
$ cat / etc / exports

/ home / share 192.168 . 102.15 (rw,sync) * (ro)
配置说明: 对192.168.102.15赋予读写权限,其他机器仅有只读权限。
重启NFS服务
        
        
        
        
   # / etc / init.d / nfs - kernel - server restart
在客户机上查看NFS的资源共享情况
# showmount - e 192.168 . 102.47

Export list
for 192.168 . 102.47 : / home / share (everyone)
使用mount命令即可挂栽共享资源
在客户机 192.168.102.15 上加载共享资源

二、搭建tftp服务器
1、安装
服务器端
#aptitude install tftpd
安装完后,/etc/inetd.conf 档会有一行是tftpdinvoke 命令。最后一个argumenttftp export 目录。debian default /boot,一般是用/tftpboot,所以要修改一下
tftp    dgram   udp    wait    nobody    / usr / sbin / tcpd    / usr / sbin / in .tftpd    / tftpboot
修改后要reoad一下inetd,即执行
# / etc / init.d / inetd reload
客户端安装
#aptitude install tftp
测试
将一些file放到 /tftpboot测试传送
$tftp 10.3 . 7 .xxx

tftp
> get xxxxxxx

tftp 是一个很简单的file transfer protocol,他使用udp,并且没有很多handshaking,authorization的机制,Client 所需要的code比较检单,所以常常用在许多resource limited 的embedded system 中,或是用在开机的时候。
因为tftp 不是一个常常会使用的服务,所以以standalone dameon的方式执行会一直站住内存,所以建议使用inetd的方式来安装。
# mount 192.168 . 102.47 : / home / share / mnt
# cd
/ mnt
# echo
' 12345 ' > 123
即可发现对服务器共享目录可写
# umount /mnt
在客户机 192.168.102.61 上加载共享资源
# mount 192.168.102.47:/home/share /mnt

# cd /mnt

# ls
123

# touch 321

touch: cannot touch `321': Permission denied

# echo '123455' >123

-bash: 123: Permission denied
即可发现对服务器共享目录只有读取权限,
这与我们在服务器端的权限设置是相符的。
是不是我们每次修改了配置文件都需要重启nfs服务呢? 这个时候我们就可以用exportfs命令重新扫描/etc/exports文件,来使改动立刻生效。
比如:
# exportfs -au 卸载所有共享目录

# exportfs -rv 重新共享所有目录并输出详细信息
exportfs 命令有软件包 nfs-kernel-server 提供,详细的 exportfs 命令说明请查看:
man exportfs