当执行像 LS 这样的命令时,我得到这样的输出(在 NFS 安装的远程文件夹上执行此操作)
-rw-r--r--. 1 4016 folderA 23 Mar 31 10:47 soto_file
这是完全正确的,该文件是由 ID 为 4016 的用户在另一台计算机上创建的。但是执行 ls 的计算机显然不知道这个 UID。我的问题是,在执行 ls 时是否可以将其替换为字符串而不创建新用户?否则,这是非常没有信息的(这是其他用户必须使用的东西,他们不知道哪个数字对应于每个用户)。
答案1
在运行的系统和大多数文件系统中,用户是通过数字标识符而不是名称来标识的。您无法用文件系统内的名称替换数字标识符(uid):该ls
命令根据其运行的系统的用户数据库来执行此操作。
现代版本的 NFS 协议 (NFSv4) 允许用户和组 ID 重新映射。在客户端,配置nfsidmap
将服务器用户 4016 映射到您想要在本地拥有的任何用户。
如果您要为多台计算机上的许多用户进行此设置,则使用 LDAP 设置网络范围的帐户通常要容易得多。这样,用户在所有计算机上都具有相同的用户 ID。
如果您仅为一个用户进行此设置,则使用与 NFS 不同的协议通常要容易得多。确保服务器正在运行启用了 SFTP 的 SSH 服务器,并通过以下方式挂载远程文件系统SSHFS。