Linux NFS服务的权限设置和身份映射

  1. NFS和Samb服务主要是应用与局域网内,FTP服务可以应用在互联网上来使用
  2. 权限主要分两种,ro(默认,只读)rw(读写)sync(同步,必须加);客户端还可以用*来表示,就代表所有客户端都可以访问
  3. 在设置权限后,还应别忘了系统层面的权限设置,否则也会显示权限不够,没法操作,可以在系统层次上设置最大权限
  4. NFS服务不具备用户身份验证的功能,而是基于客户端的IP来进行认证的
  5. Exportfs命令,可以在不重启的情况下加载配置文件,使新的修改的配置项生效,exportfs命令的选项,-a(全部挂载或全部卸载),-r(重新挂载),-v(显示详细信息),一般是将这三个选项结合使用

NFS用户的身份映射:

  1. Nfsnobody nfs匿名用户,只要安装了nfs服务就会有这么一个用户,这个用户不允许登录系统,Anonymous(匿名)
  2. 在服务器上会有这么一个nfsnobody匿名用户,然后客户端在用nfs服务访问服务器上的共享目录时,就会被映射成这个用户来访问
  3. 作用就是客户端访问服务器的共享目录具有什么权限,就是相当于服务器给nfsnobody用户什么权限,但实际中,有些用户会被映射,而有些用户不会被映射,根据是否映射就分为三个情况,根据三个情况又有三个选项;一般不建议将共享目录的权限设为777
  4. 在/etc/exports配置文件中提供了几项,来确定是否将NFS客户端映射为nfsnobody用户:

·root_squash,当NFS客户端以root用户身份访问时,映射为NFS服务器的nfsnobody用户

·no_root_squash,当NFS客户端以root身份访问时,映射为NFS服务器的root用户,也就是要为超级用户保留权限,这个选项会存在严重的安全隐患,一般不建议采用。

·all_squash,无论NFS客户端以哪种用户身份访问,均映射为NFS服务器的nfsnobody用户。

这些选项添加在客户端选项中,起到对应的作用,服务器端可以根据用户映射这个原理,结合ACL来控制客户端对共享文档的权限。

  1. 用户身份重叠,指在NFS服务采用默认设置(root_squash)时,将root用户映射成匿名用户,如果在服务器端赋予某个用户对共享目录具有相应权限,而且在客户端正好也有一个相同UID的用户,那么当在客户端以该用户身份访问共享时,就会被映射成具有相同UID的用户,将自动具有服务器端对应的用户的权限,

这种情况仅对于Linux系统而言,因为区分不同用户的唯一标识就是UID,具有一定的偶然性,如何避免用户身份重叠?

  1. 在设置NFS共享时,建议采用“all_squash”选项,将所有使用共享目录的客户端都映射成匿名用户,这样就可以有效避免重叠问题。
  2. 严格控制NFS共享目录的系统权限,尽量不给普通用户提供权限。

你可能感兴趣的:(Linux服务学习)