庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>操作系统>Linux>系统管理>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

Linux下的NFS

 作者:本站收集   日期:2005-4-11
字号选择〖 〗/ 双击滚屏 单击停止   
NFS(Network File System)是由Sun开发的用于网络上文件共享协议.NFS使用起来很方便,所以得到了广泛的应用.但由于它的认证机制是基于IP地址的,因而容易被攻击.
注意NFS是基于rpc机制的,所以portmap服务一定要打开.
在RedHat中:
/etc/rc.d/init.d/nfs
...

[ -f /usr/sbin/rpc.nfsd ] || exit 0
[ -f /usr/sbin/rpc.mountd ] || exit 0
[ -f /etc/exports ] || exit 0

# See how we were called.
case "$1" in
start)
# Start daemons.
echo -n "Starting NFS services: "
daemon rpc.mountd
daemon rpc.nfsd
echo
touch /var/lock/subsys/nfs
;;

...

可以看出由三个重要文件,rpc.mountd,rpc.nfsd,/etc/exports.
rpc.nfsd
用于处理客户文件系统的请求.

rpc.mountd
但从一个NFS客户受到一个mount请求,根据/etc/exports来决
定是否提供服务,如果被允许,rpc.mountd创建一个文件句柄并在
/etc/rmtab中加上一条纪录.该记录在umount时被删除.

/etc/exports
NFS的配置文件.

例如:
这里有四台机器:192.168.1.1 192.168.1.2
192.168.1.3 192.168.1.4
在192.168.1.1上:
/etc/exports包含下面一条:
/home/ftp/pub 192.168.1.0/255.255.255.0(ro)

在192.168.1.2上:
showmount -e 192.168.1.1
/home/ftp/pub ro

mount 192.168.1.1:/home/ftp/pub /mnt
这样在192.168.1.2上就可以自由的访问192.168.1.1的
/home/ftp/pub下的文件,仿佛它们就存在/mnt下.

/etc/exports的配置规则:
每一条都有下面的形式:
directory machine_name(option)
directory就是本地的一个目录.
machine_name描述那些及其有权利访问该目录.
option描述了提供了什么样的服务,或者说客户有什么样的权利.

machine_name的格式:
single host: 一个机器名或一个ip地址.
/tmp friday(ro)
/tmp 192.168.1.3(ro)
wildcard:使用了通配符,* 或 ?.
/tmp *.cs.foo.edu(ro)
IP 子网: 如: 192.168.1.0/255.255.255.0
=public: 所有机器都有权利.

option:
ro 只读
rw 读写
noaccess 无权
link_relative/link_absolute 对符号连接的处理,前者是
加上"./",后者是保持不便.
在NFS中存在一个anonymous用户用于处理用户的访问权限.
root_squash/no_root_squash:是否将root映射到anonymous.
squash_uid/squash_gid/all_squash:
如何处理用户的uid和gid.
map_static:启动静态映射.
如: map_static=/etc/nfs/foobar.map
/etc/nfs/foobar.map
# remote local
uid 0-99 - #squash
uid 100-500 1000
gid 0-49 - #squash
gid 50-100 700

一个复杂的例子:
/ master(rw) trusty(rw,no_root_squash)
/usr *.local.domain(ro)
/project proj*.local.domain(rw)
/pub =public(ro)
/pub/private (noaccess)

由于它的认证机制是基于IP地址的,因而容易被ip-spoofing攻击.
一般除非必要不要打开这项服务.
上一篇:守护进程的概念和建立方法    下一篇:Linux与Linux之间的互拔  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-4-11
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿