有趣的是,在我安装了 nginx 的 Ubuntu 衍生产品上apt
,www-data
用户有一个 shell:
$ cat /etc/passwd
www-data:x:33:33:www-data:/var/www:/bin/sh
这不应该设置为类似的东西/bin/false
吗?就算用户不能登录,像这样默认给系统用户提供shell不是很危险吗?
有趣的是,在我安装了 nginx 的 Ubuntu 衍生产品上apt
,www-data
用户有一个 shell:
$ cat /etc/passwd
www-data:x:33:33:www-data:/var/www:/bin/sh
这不应该设置为类似的东西/bin/false
吗?就算用户不能登录,像这样默认给系统用户提供shell不是很危险吗?
好吧
/bin/false
(或者/bin/true
如果你是一个积极的人)是一个真正的外壳 - 它只是不是一个交互式外壳 :-)/sbin/nologin
在一些系统上也有同样的目的。至于您的 Apache 用户是否需要交互式 shell(类似于
bash
),正如其他人所说的那样,答案是“通常不需要”。将 Apache 用户的 shell 设置为非交互的东西通常是一种很好的安全实践(实际上所有不必以交互方式登录的服务用户都应该将他们的 shell 设置为非交互的东西)。
游览像您这样的现有环境,尝试一下,看看是否有任何问题。
如果没有任何问题,从现在开始使用非交互式 shell。
如果东西坏了,试着在不恢复交互式 shell 的情况下修复它:-)