开源是一种精神,分享是一种美德!

exportfs

相关命令:暂无相关命令
exportfs - 管理维护NFS导出表
NFS服务端会维护一张可被NFS客户端访问的本地物理文件系统的表。表中的每个文件系统都被称为
导出的文件系统,或简称为导出项。

exportfs命令维护NFS服务端当前导出表。其中导出主表存放在/var/lib/nfs/etab文件中。当客户端
发送一个NFS MOUNT请求时,rpc.mountd进程会读取该文件。

一般来说,导出主表是"exportfs -s"读取/etc/exports和/etc/exports.d/*.exports文件来初始化的。
但是,系统管理员可以使用exportfs命令直接向主表中添加或删除导出项,而不需要去修改
/etc/exports或/etc/exports.d/*.exports文件。

exportfs和它的搭档程序rpc.mountd以两种模式之一工作:传统模式用于Linux Kernel 2.4以及之前
的版本,新模式应用于内核2.6和之后的版本,新模式提供了nfsd虚拟文件系统,并将它们挂载在
/proc/fs/nfsd或/proc/fs/nfs上。在kernel 2.6之后,如果未挂载nfsd虚拟文件系统,则表示工作在
传统模式下。


在新模式下,exportfs不会给内核任何信息,而是通过文件/var/lib/nfs/etab将信息交给rpc.mountd,
然后rpc.mountd就可以按需管理关于导出信息的内核请求。

传统模式下,exports文件只能识别主机,不能识别网段和网络组,且会直接将导出信息交给内核中
的导出表,同时写入到文件/var/lib/nfs/etab文件中。

用法:
       /usr/sbin/exportfs [-avi] [-o options,..] [client:/path ..]
       /usr/sbin/exportfs -r [-v]
       /usr/sbin/exportfs [-av] -u [client:/path ..]
       /usr/sbin/exportfs [-v]
       /usr/sbin/exportfs -f
       /usr/sbin/exportfs -s


参数
       -d kind  or  --debug kind
              开启调试功能。有效的kind值为:all, auth, call, general和parse。

       -a     导出或卸载所有目录。

       -o options,...
              指定一系列导出选项(如rw,async,root_squash),这些导出选项在exports(5)的man文档中有记录。

       -i     忽略/etc/exports和/etc/exports.d目录下文件。此时只有命令行中给定选项和默认选项会生效。

       -r     重新导出所有目录,并同步修改/var/lib/nfs/etab文件中关于/etc/exports和/etc/exports.d/
              *.exports的信息(即还会重新导出/etc/exports和/etc/exports.d/*等导出配置文件中的项)。该
              选项会移除/var/lib/nfs/etab中已经被删除和无效的导出项。

       -u     卸载(即不再导出)一个或多个导出目录。

       -f     如果/prof/fs/nfsd或/proc/fs/nfs已被挂载,即工作在新模式下,该选项将清空内核中导出表中
              的所有导出项。客户端下一次请求挂载导出项时会通过rpc.mountd将其添加到内核的导出表中。

       -v     输出详细信息。

       -s     显示适用于/etc/exports的当前导出目录列表。
 
【NFS共享的常用参数】
ro                       只读访问  
rw                      读写访问  
sync                   同步写入硬盘
async                  暂存内存
secure                NFS通过1024以下的安全TCP/IP端口发送  
insecure              NFS通过1024以上的端口发送  
wdelay                多个用户对共享目录进行写操作时,则按组写入数据(默认)  
no_wdelay           多个用户对共享目录进行写操作时,则立即写入数据
hide                    不共享其子目录  
no_hide               共享其子目录  
subtree_check      强制NFS检查父目录的权限
no_subtree_check 不检查父目录权限  
all_squash             任何访问者,都转为 匿名yong  
root_squash          root用户访问此目录, 映射成如anonymous用户一样的权限(默认)

no_root_squash     root用户访问此目录,具有root操作权限  

DISCUSSION
   Exporting Directories
       synopsis中的第一项显示了当要向导出表中添加导出条目时如何调用exportfs命令。当使用"exportfs -a"
       时,所有记录在/etc/exports和/etc/exports.d/*.exports中的导出项都会被添加到文件/var/lib/nfs/etab
       中。且会按需更新内核中的导出表。


       client:/path参数中的/path指定了本地需要导出的目录,而client表示可以访问该导出目录的客户端。
       关于导出选项以及client的指定格式,则参见exports(5)的man文档。


       IPv6地址中包含冒号,但冒号已经用于分隔"client"和"/path"命令行参数。因此当使用IPv6地址指定客
       户端时,需要将该地址使用中括号包围。对于IPv6网络地址,将前缀放在关闭括号后面。
       (如:[X:X:X:X:X:X:X:X]:/path和[fe80::]/64:/path)


       如果要将目录导出为所有人可访问(即导出给整个world),则只需使用":/path"即可。但此时可能会给出
       警告信息,可以使用


       一个特定的host/directory的导出选项可以有多个来源。默认导出选项是sync,ro,root_squash,wdelay。
       这些默认选项可以被/etc/exports或/etc/exports.d/*.exports中的选项覆盖掉。


       系统管理员可以使用"exportfs -o options"来覆盖所有其他来源的选项。命令行中指定导出选项时使用
       逗号分隔导出选项列表。也就是说,exportfs可用于修改已导出目录的导出选项。


   Unexporting Directories
       synopsis中的第三项显示了如何卸载当前已导出的目录。当使用"exportfs -ua"时,/var/lib/nfs/etab中
       的所有项都将从内核导出表中移除,且该文件会被清空。这对要关闭所有NFS活动时很有效。


       如果只要移除某一个导出项,则指定client:/path即可。它会删除/var/lib/nfs/etab中对应的项,并从
       内核导出表中移除对应的项。


   Dumping the Export Table
       当exportfs命令不接任何选项时,将输出当前所有已导出目录的列表。使用"-v"选项可输出更详细信息。


例子
       以下示例会导出/etc/exports和/etc/exports.d/*.exports中的目录,且会记录到/var/lib/nfs/etab中,
       并最终会记录到内核导出表中:


       # exportfs -a


       导出目录/usr/tmp给django主机,且允许客户端发送不安全的文件锁请求:


       # exportfs -o insecure_locks django:/usr/tmp


       卸载/usr/tmp目录:


       # exportfs -u django:/usr/tmp


       卸载所有导出列表:


       # exportfs -au


       导出/usr/tmp目录给IPv6的本地客户端:


       # exportfs [fe80::]/64:/usr/tmp



显示简明共享情况
# exportfs
/home/snail/share/qte            192.168.1.15/25        
/home/snail/share/tslib            192.168.1.15
/usr/local                              
/home/snail/share/tslib            

显示详细共享情况
# exportfs -v
/home/snail/share/qte
           192.168.1.15 /25(rw,wdelay,root_squash, no_subtree_check)
             #192.168.1.15 /25 这段IP对该目录具有读写权限
/home/snail/share/tslib
          192.168.1.15 /25(rw,wdelay,root_squash, no_subtree_check)
            #192.168.1.15  的IP对该目录具有读写权限
/usr/local 
           (rw,wdelay, insecure, no_root_squash, no_subtree_check)
            #所有用户均可访问对该目录具有读写权限
/home/snail/share/tslib
           (rw,wdelay, insecure, no_root_squash, no_subtree_check)
            #所有用户 均可访问对该目录但只有只读权限

使/etc/exports 配置生效
# exportfs -r

所有用户均可访问对该目录但只有只读权限
# exportfs  *:/home/snail/share/qtmpk

所有用户均可访问对该目录但只有只读权限,且允许匿名访问
# exportfs  -o async *:/home/snail/share/gtk_1

192.168.1.15 的IP可访问对该目录但只有只读权限,且允许匿名访问
# exportfs  -o async 192.168.1.15:/home/snail/share/gtk_2   

评论(0)

暂无评论

评论

名字:
验证码:
获取验证码
内容: