有趣的是,在我的Ubuntu衍生产品中安装了apt
nginx, www-data
用户有一个shell:
$ cat /etc/passwd www-data:x:33:33:www-data:/var/www:/bin/sh
这不应该被设置为像/bin/false
? 即使用户无法login,默认情况下为系统用户提供一个shell是不是很危险?
那么/bin/false
(或者如果你是一个积极的人, /bin/true
)是一个真正的shell – 它不是一个交互式的 shell :-)在一些系统上也有/sbin/nologin
,它们有相同的用途。
至于你的Apache用户是否需要一个交互式shell(类似于bash
),其他人所说的答案是“通常,不是”。
将Apache用户的shell设置为非交互式的通常是很好的安全实践(实际上,所有不需要交互式login的服务用户都应该将其shell设置为非交互式)。
参观像你这样的现有环境,尝试一下,看看是否有什么突破。
如果从现在开始使用非交互式shell,什么都不rest。
如果东西断裂,请尝试修复它, 而不要恢复交互式shell 🙂