什么是nobody用户和组?

什么是nobody用户和组?

在我的服务器 (Synology DS212) 上,某些文件和文件夹具有nobody nobody用户和组。这个用户和群体有什么特征?谁可以写入或读取该文件?

我怎样才能改变它?对于哪个用户和组?

答案1

在许多 Unix 和 Linux 发行版中,nobody 用户是伪用户。根据Linux 标准库,nobody 用户及其组是可选的助记用户和组。该用户代表在系统上拥有最少权限的用户。在最好的情况下,用户及其组不会分配给任何文件或目录(作为所有者)。该用户位于其对应的组中,该组(根据 LSB)也称为“nobody”,并且不属于其他组。

在早期的 Unix 和 Linux 发行版中,守护进程(例如 Web 服务器)是在无人用户下调用的。如果恶意用户获得了对此类守护进程的控制,那么他所能造成的损害将仅限于该守护进程所能造成的损害。但问题是,当有多个守护进程以无人用户身份运行时,这就不再有意义了。这就是为什么今天这样的守护进程有自己的用户。

不应该为nobody 用户分配任何shell。不同的发行版以不同的方式处理这个问题:有些是指打印消息;有些是指/sbin/nologin打印消息;有些是指打印消息。有些指的是/bin/false简单地以 1(假)退出;或者有些只是禁用用户/etc/shadow

根据 Linux 标准库,nobody 用户是“由 NFS 使用”。事实上,NFS 守护程序是少数仍然需要无人用户的守护程序之一。如果已挂载的 NFS 共享中的文件或目录的所有者在本地系统中不存在,则该所有者将由无人用户及其组替换。

您只需使用 root 用户和 即可更改无人用户拥有的文件的权限chown。但在托管 NFS 共享的计算机上,该用户可能存在,因此请小心。

我也使用 Synology 系统。他们在 nobody 用户下运行 apache Web 服务器。

答案2

可以登录的用户nobody可以更改这些文件,但通常系统已设置,因此这是不可能的。在我的基于 Debian 的系统上,文件中的条目/etc/passwd是:

nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin

/usr/sbin/nologin给出:

This account is currently not available.

您只能在 root 用户下更改此设置,因为通常没有其他人是该组的成员nobody。但我怀疑你是否应该这样做。通常这些文件是有意获得此所有权的。

相关内容