Answers:
在许多Unix和Linux发行版中,nobody用户都是伪用户。根据Linux Standard Base,nobody用户及其组是可选的助记符用户和组。该用户应代表具有最小系统权限的用户。在最佳情况下,不会将用户及其组分配给任何文件或目录(作为所有者)。该用户在其对应的组中(根据LSB)(也称为“没人”),在其他任何组中。
在较早的Unix和Linux发行版中,守护进程(例如Web服务器)是在none用户下调用的。如果恶意用户获得了对该守护程序的控制权,则他可以执行的损害仅限于该守护程序可以执行的操作。但是问题是,当有多个守护进程与nobody用户一起运行时,这不再有意义。这就是今天这样的守护程序拥有自己的用户的原因。
没有用户应该没有分配任何外壳。不同的发行版以不同的方式处理该问题:有些引用会/sbin/nologin
打印一条消息;有些则会打印一条消息。有些引用/bin/false
只是以1(false)退出;或只是在中禁用用户/etc/shadow
。
根据Linux Standard Base,nobody用户是“由NFS使用”。实际上,NFS守护程序是仍需要无人用户的少数几个。如果已挂载的NFS共享中文件或目录的所有者在本地系统上不存在,则将其替换为none用户及其组。
您只需使用root用户和即可更改无人用户拥有的文件的权限chown
。但是在托管NFS共享的计算机上,该用户可能存在,因此请当心。
我也使用Synology系统。他们在nobody用户下运行apache Web服务器。
可以登录的用户nobody
可以更改这些文件,但是通常已安装系统,因此无法进行操作。在基于debian的系统上,/etc/password
文件中的条目为:
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
并/usr/sbin/nologin
给出:
This account is currently not available.
您只能以root用户身份更改此权限,因为通常没有人是该组的成员nobody
。但是,我怀疑您是否应该这样做。通常,这些文件是有意获得此所有权的。
/etc/passwd
我有nobody:x:99:99::/:/bin/false
。/bin/false
什么也不返回。
/bin/false
也防止有人在登录,即使将是一个passord组nobody
中/etc/shadow
,通常不存在。
sudo su nobody -s /bin/sh
(例如,使用/ bin / sh覆盖“默认shell” / usr / bin / nologin)