NFS是干什么的?
开发时用到宿主机Windows系统、宿主机Llinux系统及目标机Linux系统,进程需要在不同文件之间进行共享文件。
宿主机Windows系统、宿主机Llinux系统之间的文件共享需要通过配置samba来实现
宿主机Llinux系统及目标机Linux系统之间的文件共享需要通过配置NFS(网络文件系统)来实现。
NFS即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许一个系统在网络上与他人共享目录和文件,通过使用NFS,用户和程序可以向访问本地文件一样访问远端系统上的文件。
NFS服务器的配置
etc/exports文件指定了哪个文件系统应该输出,该文件每行指定一个输出的文件系统,哪些机器可以访问文件系统以及访问权限。
格式:[共享目录][主机名1或IP1(参数1,参数2)][主机名2或IP2(参数3,参数4)]
共享目录是NFS客户端可以访问的目录,主机名或IP地址是要访问共享目录的主机名或者IP地址,当主机名或IP地址为空的时候,则代表共享给任意客户机提供服务。参数是可选的,当不指定参数时,NFS将使用默认选项,默认的选项是sync,ro,root_squash,no_delay。
下面是一些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。
eg:
创建共享文件目录/home/share,在该目录这种创建文件zgjtest,赋予202.202.159.*主机读写的权限,其他机器仅有只读的权限
#mkdir /home/share
#touch /etc/exports
#cd /etc
#gedit exports
在exports文件中添加:
/home/share 202.202.159.*(rw) *(ro)
PS:配置后需要重新启动NFS