我有几台服务器,它们的 UID 和 GID 对于相同的用户名和组名是不同的。当我 NFS 将表面上属于同一用户的目录从一台服务器挂载到另一台服务器时,由于 UID/GID 不匹配,用户无法访问这些文件。
有没有办法映射 UID 和 GID?
谢谢。
我有几台服务器,它们的 UID 和 GID 对于相同的用户名和组名是不同的。当我 NFS 将表面上属于同一用户的目录从一台服务器挂载到另一台服务器时,由于 UID/GID 不匹配,用户无法访问这些文件。
有没有办法映射 UID 和 GID?
谢谢。
您可能要考虑使用LDAP。如果你这样做,你的问题就会消失。此外,它消除了“漫游”用户的痛苦,这些用户可能具有不同的 UID/GID,具体取决于他们使用的系统。
如果一开始 LDAP 看起来很吓人,请尝试使用基于 Web 的管理工具(如Gosa)来开始。如果您已经熟悉 LDAP 树,phpLDAPadmin可能会为您提供更多的灵活性。
bindfs 1.10(一个通过 FUSE 实现的 Linux 用户空间文件系统)将一个目录挂载到另一个位置,在此过程中可以选择转换 UID/GID(和/或权限)。
据我所知,这是不可能的。您可以将 root 映射到不同的 ID,但不能映射到其他 ID。
您可能会发现使用 CIFS 更容易做您想做的事。
如果您希望客户端上的用户与服务器上的用户对齐,请参阅华莱士的回答。
但是,如果您希望客户端上的所有用户都是服务器上的同一用户,您可以在服务器上的 /etc/exports 文件中添加 (all_squash,anonuid=#,anongid=#) 以强制所有客户端匿名,然后设置匿名用户 ID 和组 ID
我之前回答过一个类似的问题:Mapping UIDs for NFS。
简而言之,使用 LDAP 或其他一些系统来同步您的 UID。
map_static
通过导出选项,至少有一些实现是可能的。见这篇文章。您可以使用 usermod 命令更改两个系统上用户的 UID/GID。但是,在更改系统用户的 id (uid < 500) 时应该小心。