![在 Linux 中使用禁用用户启动进程安全吗?](https://linux22.com/image/15444/%E5%9C%A8%20Linux%20%E4%B8%AD%E4%BD%BF%E7%94%A8%E7%A6%81%E7%94%A8%E7%94%A8%E6%88%B7%E5%90%AF%E5%8A%A8%E8%BF%9B%E7%A8%8B%E5%AE%89%E5%85%A8%E5%90%97%EF%BC%9F.png)
我创建了用户uwsgi
和组uwsgi
,以便将它们用作uid
uwsgigid
属性的 .ini 文件。我没有为此用户设置密码(没有运行sudo passwd uwsgi
,实际上,我无法以 uwsgi 身份登录)。使用用户作为 uwsgi 进程的进程所有者是否安全?或者这是一个不好的做法,最好为用户设置密码uwsgi
?
答案1
是的,这几乎是标准做法。例如,许多守护进程使用自己的专用用户名/uid(通常还有专用 gid)运行 - 它们没有密码(或禁用的密码)并且无法登录,但可以运行进程和 cron 作业和他们的 UID。
他们中的许多人也有/bin/false
或/usr/sbin/nologin
类似的外壳。
例如,在我的 Debian 系统上,用户tftp
和unbound
用于运行dnstftpd
解析器unbound
。其中一个有/bin/false
外壳,另一个有/usr/sbin/nologin
——实际上,没有什么区别。
$ getent passwd tftp unbound
tftp:x:182:187:tftp daemon,,,:/srv/tftp:/bin/false
unbound:x:188:210::/var/lib/unbound:/usr/sbin/nologin