以受限用户身份启动 Web 服务器的最佳做法是什么?

以受限用户身份启动 Web 服务器的最佳做法是什么?

为了练习我的 Linux 强化技能,我尝试按照某些安全原则启动 Web 服务器。我的主要目标是使用具有非常有限权限的专用用户来运行服务器。我认为这可能是使用 shell 创建用户的一个很好的用server/usr/sbin/nologin

但是我该如何启动服务器呢?当尝试使用 启动一个简单命令时su,我收到一个错误,即使使用-s指定了有效的 shell: 在此处输入图片描述

我猜这是具有 shell 的用户的预期行为nologin,但该用户如何启动服务器?sudo例如是否应该有一些规则?

供参考,我的服务器是一个Flask使用简单包装sh脚本启动的简单服务器。

答案1

我在 SUSE、Ubuntu 和 Debian 上安装了 Web 服务器 nginx 和 apache2。它们从未以 root 身份运行,始终以 www-data 或 wwwrun 身份运行。我逐步描述了设置过程https://try-linux.blogspot.com/2020/10/a-new-look-for-linuxintroorg.html但正如所说,做错这件事相当困难。从我的命令行中得到一些提示,该工作器以 www-data 身份运行:

# ps -ef|grep nginx
root      1923     1  0 Nov13 ?        00:00:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
www-data  1924  1923  0 Nov13 ?        00:09:29 nginx: worker process
www-data  1925  1923  0 Nov13 ?        00:00:02 nginx: worker process
root     22679 22074  0 12:32 pts/0    00:00:00 grep nginx
# cat /etc/passwd|grep www-data
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin

相关内容