我有一个关于 Linux 用户的问题,我使用以下命令来添加用户:
useradd -u 532 -d /data/test01 -g test test01
但是当我以 身份登录test01
并运行时mkdir x
,它变成如下形式:
没人测试 x
为什么用户会这样nobody
?我该如何解决?
答案1
另一个可能的解释是,您在固定给一个用户的文件系统上运行这些内容。
这种情况可能是ntfs
或vfat
。
nfs
使用root_squash
(默认)安装可能是另一个原因。
答案2
您可以使用用户模式命令来修改各种用户参数,例如用户名和唯一标识。
答案3
用户别名
一种可能的解释是,您已经有一个名为 nobody 的用户,其 UID(用户 ID)为 532。结果是您创建了一个“用户别名”。
您可以尝试为您的用户指定另一个 UID(或让系统选择一个)。或者您可以保持原样。唯一的安全风险是,如果服务或其他用户可以访问nobody
的数据,那么它将能够访问您的数据。
NFS 用户 ID 映射
为了让用户感觉他们正在访问自己的文件,NFS 服务器上的 UID 应该与 NFS 客户端上的 UID 匹配。尽管你至少希望避免这种情况root
。
默认情况下,NFS exportfs 将选择与您的用户的 UID 对应的 UID/GID 65534。nobody
您需要指示 NFS 服务器不要将所有 UID 映射到 65534,或者如果这是所需的行为,则需要指定映射的默认 UID。
对于第一种情况,删除all_squash
并将其替换为root_squash
,但请记住,NFS 服务器和任何客户端之间具有相似 UID 的任何非 root 用户都将匹配,因此他们拥有这些文件”
对于第二种情况,保留all_squash
但添加anonuid=532
(您也可以将其anongid
用于 GID(或组 ID))。
例子:
/ pc001(rw,root_squash)
/home/joe pc002(rw,all_squash,anonuid=532,anongid=100)
注意:更改应在/etc/exports
NFS 服务器上的文件中完成。