www-data 用户是否需要真正的外壳?

Naf*_*Kay 7 security user-accounts

有趣的是,在我安装了 nginx 的 Ubuntu 衍生产品上aptwww-data用户有一个 shell:

$ cat /etc/passwd
www-data:x:33:33:www-data:/var/www:/bin/sh
Run Code Online (Sandbox Code Playgroud)

这不应该设置为类似的东西/bin/false吗?即使用户无法登录,默认为这样的系统用户提供shell不是很危险吗?

vor*_*aq7 7

好吧/bin/false(或者/bin/true如果你是一个积极的人)是一个真正的 shell - 它只是不是一个交互式shell :-)/sbin/nologin在一些系统上也有同样的用途。

至于您的 Apache 用户是否需要交互式 shell(例如bash),正如其他人所说,答案是“通常不需要”。
将 Apache 用户的 shell 设置为非交互式通常是一种很好的安全实践(实际上,所有不必以交互方式登录的服务用户都应该将其 shell 设置为非交互式)。

参观像您这样的现有环境,尝试一下,看看是否有任何问题。
如果没有任何问题,请从现在开始使用非交互式 shell。
如果出现问题,请尝试在恢复交互式 shell 的情况下修复它:-)