什么是用户和组?


37

在我的服务器(Synology DS212)上,某些文件和文件夹具有nobody nobody用户和组。该用户和组的特征是什么?谁可以写该文件?

我该如何更改?哪个用户和组?

Answers:


41

在许多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用户一起运行时,这不再有意义。” - 怎么来的?受损的守护程序会影响其他守护程序吗?
flow2k

5

可以登录的用户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什么也不返回。
Guuk

/bin/false也防止有人在登录,即使将是一个passord组nobody/etc/shadow,通常不存在。
任何人

如果您出于某种原因想要登录到nobody帐户,则可以覆盖shell sudo su nobody -s /bin/sh (例如,使用/ bin / sh覆盖“默认shell” / usr / bin / nologin)
hanshenrik
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.