Nginx配置中user设置为nobody有什么用?

Nginx配置中有一个关于user的设置,看到有的配置为:

user nobody nobody;

这个对应的权限是怎样的呢?

阅读 14.1k
1 个回答

在许多Unix和Linux发行版中,nobody用户都是伪用户。根据Linux Standard Base,nobody用户及其组是可选的助记符用户和组。该用户旨在代表对系统具有最小权限的用户。在最佳情况下,不会将用户及其组分配给任何文件或目录(作为所有者)。该用户在其对应的组中(根据LSB)也称为“ nobody”,且不在其他任何组中。

在较早的Unixes和Linux发行版中,守护程序(例如Web服务器)是在nobody用户下调用的。如果恶意用户获得了对该守护程序的控制权,则他可以执行的损害仅限于该守护程序可以执行的操作。但是问题是,当有多个守护进程与nobody用户一起运行时,这不再有意义。这就是今天这样的守护程序拥有自己的用户的原因。

nobody 用户不应为其关联任何shell。不同的发行版以不同的方式处理该问题:有些引用会/sbin/nologin打印一条消息;有些引用/bin/false, 只是以1(false)为退出码;或只在禁用用户/etc/shadow表中存在。

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

您可以仅通过root用户和chown更改nobody用户拥有的文件的权限。但是在托管NFS共享的计算机上,该用户可能存在,因此请当心。

参考:https://unix.stackexchange.co...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏