用户为何变成无名小卒?

用户为何变成无名小卒?

我有一个关于 Linux 用户的问题,我使用以下命令来添加用户:

useradd -u 532 -d /data/test01 -g test test01

但是当我以 身份登录test01并运行时mkdir x,它变成如下形式:

没人测试 x

为什么用户会这样nobody?我该如何解决?

答案1

另一个可能的解释是,您在固定给一个用户的文件系统上运行这些内容。

这种情况可能是ntfsvfat

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/exportsNFS 服务器上的文件中完成。

相关内容