在我的服务器 (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
。但我怀疑你是否应该这样做。通常这些文件是有意获得此所有权的。