在linux ami上,为我的服务器轻松运行systemctl的唯一方法是通过运行
sudo systemctl start node 在服务中:
/etc/systemd/system/node.service sudo似乎是“启用”、“状态”、“开始”和“停止”系统get命令必须运行的命令(我知道有一些教程可以作为“用户”运行,而不需要使用sudo,但我无法让它们工作)
我有过
[Service]
User=ec2-user所以用户是'ec2-user‘而不是'root’。因此,我想知道,尽管我以root身份运行systemctl,但服务本身是否以ec-2用户的身份运行。
据我所知,潜在的安全风险包括终端用户使用webapp并通过API堆栈上传恶意文件这些文件可能会将我的服务器保存到特定的端点(比如上传PDF或图像时),这对我来说就变得模糊不清了,但是如果最终用户将恶意软件上传到服务器的磁盘而不是上传PDF或图像.然后..。因为systemctl是作为root运行的,那么脚本可能拥有在我的服务器上执行或执行某种“命令和控制”的权限?
或者,systemctl是以“EC2-user”而不是“root”的身份运行的,这样可以防止恶意文件被上传并在堆栈上执行吗?因此我可以安全地运行sudo系统..。命令,只要服务用户是非根用户?
这是一个普遍的问题,但举一个具体的例子,我知道ImageMagick中充斥着这种安全漏洞。
https://us-cert.cisa.gov/ncas/current-activity/2016/05/04/ImageMagick-Vulnerability
发布于 2020-12-23 18:06:55
像web服务器这样的服务应该在没有升级权限的情况下运行,这正是您在问题中描述的原因。
诚然,您必须是运行systemctl的根用户,但web服务器运行的用户通常是另一个权限较低的用户。在apache或apache2的情况下,用户通常是www-data、apache或nobody。
有关如何查看哪个用户apache/apache2正在运行的更多信息,请参见https://serverfault.com/questions/125865/finding-out-what-user-apache-is-running-as
有关使用systemctl启动/停止apache 2的更多信息,请参见https://unix.stackexchange.com/questions/290923/apache-and-systemctl-status
https://security.stackexchange.com/questions/242494
复制相似问题