zoukankan      html  css  js  c++  java
  • nfs

    NFS:Network File System,基于RPC实现,一般用于内网中。在类unix系统之间实现共享。客户端不需要安装任何应用程序,因为NFS已经是内核中的代码了
    传统意义上,文件系统在内核中实现;

    RPC: remote procedure call,远程过程调用,函数调用(远程主机上的函数)
    一部分功能由本地程序完成
    另一部分功能由远程主机上的函数完成

    用户映射
    通过 NFS 中的用户映射,可以将伪或实际用户和组的标识赋给一个正在对 NFS 卷进行操作的用户。这个 NFS 用户具有映射所允许的用户和组的许可权限。对 NFS 卷使用一个通用的用户/组可以提供一定的安全性和灵活性,而不会带来很多管理负荷。

    在使用 NFS 挂载的文件系统上的文件时,用户的访问通常都会受到限制,这就是说用户都是以匿名用户的身份来对文件进行访问的,这些用户缺省情况下对这些文件只有只读权限。这种行为对于 root 用户来说尤其重要。然而,实际上的确存在这种情况:
    希望用户以 root 用户或所定义的其他用户的身份访问远程文件系统上的文件。NFS 允许指定访问远程文件的用户——通过用户标识号(UID)和组标识号(GID),可以禁用正常的 squash 行为。

    用户映射的选项包括:
    root_squash: 这个选项不允许 root 用户访问挂载上来的 NFS 卷。或root用户的权限降级为nfsnobody用户的权限
    no_root_squash: 这个选项允许 root 用户访问挂载上来的 NFS 卷。
    all_squash: 这个选项对于公共访问的 NFS 卷来说非常有用,它会限制所有的 UID 和 GID,只使用匿名用户。缺省设置是 no_all_squash。
    anonuid 和 anongid: 这两个选项将匿名 UID 和 GID 修改成特定用户和组帐号。
    NFS: Sun,
    NFSv1
    NFSv2, udp
    NFSv3,centos6上多见
    NFSv4.0,centos7上多见
    NFSv4.1,
    NFSv4.2
    服务名称nfs.serice,守护进程为nfsd
    NIS: Network Information System。一般不用
    身份认证:集中于某服务器完成身份认证
    查看NFS服务器端共享的文件系统:
    showmount -e NFSSERVER_IP
    例如查看156.9.9.1服务器共享的文件系统
    showmount -e 156.9.9.1
    挂载NFS文件系统:
    mount -t nfs SERVER:/path/to/sharedfs /path/to/mount_point
    l例如 mount -t nfs 156.9.9.1:/data /home/nfs1
    /etc/exports:每行定义一个导出目录, 用于在服务器端配置要目录导出的文件系统。格式如下:
    directory client1(option1, option2) client2(option1, option2)
    文件系统 客户端(选项) 客户端2(选项)
    客户端:IP、FQDN或DOMAIN、NETWORK
    有几个常用的选项可以对 NFS 实现进行定制。这些选项包括:
    secure: 这个选项是缺省选项,它使用了 1024 以下的 TCP/IP 端口实现 NFS 的连接。指定 insecure 可以禁用这个选项。
    ro:只读
    rw: 这个选项允许 NFS 客户机进行读/写访问。缺省选项是只读的。
    async: 这个选项可以改进性能,但是如果没有完全关闭 NFS 守护进程就重新启动了 NFS 服务器,这也可能会造成数据丢失。
    no_wdelay: 这个选项关闭写延时。如果设置了 async,那么 NFS 就会忽略这个选项。
    nohide: 如果将一个目录挂载到另外一个目录之上,那么原来的目录通常就被隐藏起来或看起来像空的一样。要禁用这种行为,需启用 hide 选项。
    no_subtree_check: 这个选项关闭子树检查,子树检查会执行一些不想忽略的安全性检查。缺省选项是启用子树检查。
    no_auth_nlm: 这个选项也可以作为 insecure_locks 指定,它告诉 NFS 守护进程不要对加锁请求进行认证。如果关心安全性问题,就要避免使用这个选项。缺省选项是 auth_nlm 或 secure_locks。
    mp (mountpoint=path): 通过显式地声明这个选项,NFS 要求挂载所导出的目录。
    fsid=num: 这个选项通常都在 NFS 故障恢复的情况中使用。如果希望实现 NFS 的故障恢复,请参考 NFS 文档。
    例如导出/data 目录,给156.1.22.0/24 网络内的所有主机,允许读写
    /data 156.01.22.1/24(rw)
    例如导出/data目录给172.18.0.0/16 网络主机可读写。其他主机只读且all_squash,降低用户权限
    /data 172.18.0.0/16 (rw) *(ro,allsquash)

    在/etc/exports中定义了需要共享的目录后,需要使用命令exportfs导出后,才能被客户端挂载。
    exportfs:维护exports文件导出的文件系统表的专用工具:
    export -ar: 重新导出所有的文件系统
    export -au: 关闭导出的所有文件系统
    export -u FS: 关闭指定的导出的文件系统

    开机自动挂载nfs:
    /etc/fstab
    SERVER:/PATH/TO/EXPORTED_FS /mount_point nfs defaults,_netdev 0 0


    补充材料:

    /etc/exports 文件中的项的格式相当简单。要共享一个文件系统,只需要编辑 /etc/exports 并使用下面的格式给出这个文件系统(和选项)即可:
    directory (or file system) client1(option1, option2)


    用户映射
    通过 NFS 中的用户映射,可以将伪或实际用户和组的标识赋给一个正在对 NFS 卷进行操作的用户。这个 NFS 用户具有映射所允许的用户和组的许可权限。对 NFS 卷使用一个通用的用户/组可以提供一定的安全性和灵活性,而不会带来很多管理负荷。

    在使用 NFS 挂载的文件系统上的文件时,用户的访问通常都会受到限制,这就是说用户都是以匿名用户的身份来对文件进行访问的,这些用户缺省情况下对这些文件只有只读权限。这种行为对于 root 用户来说尤其重要。然而,实际上的确存在这种情况:
    希望用户以 root 用户或所定义的其他用户的身份访问远程文件系统上的文件。NFS 允许指定访问远程文件的用户——通过用户标识号(UID)和组标识号(GID),可以禁用正常的 squash 行为。

    用户映射的选项包括:
    root_squash: 这个选项不允许 root 用户访问挂载上来的 NFS 卷。或root用户的权限降级为nfsnobody用户的权限
    no_root_squash: 这个选项允许 root 用户访问挂载上来的 NFS 卷。
    all_squash: 这个选项对于公共访问的 NFS 卷来说非常有用,它会限制所有的 UID 和 GID,只使用匿名用户。缺省设置是 no_all_squash。
    anonuid 和 anongid: 这两个选项将匿名 UID 和 GID 修改成特定用户和组帐号。

  • 相关阅读:
    Android中开发习惯
    Activity、Window和View三者间的关系有一定的见解
    Android底层有一定的认识,研究过相关的Android源码
    安卓工程的启动过程
    OAuth2认证有一定的了解
    屏幕适配经验
    NOIP模拟赛14
    NOIP模拟赛13
    NOIP模拟赛12
    NOIP模拟赛11
  • 原文地址:https://www.cnblogs.com/wxxjianchi/p/11157252.html
Copyright © 2011-2022 走看看