小编ash*_*eyh的帖子

如何在 debian wheezy(运行 systemd)上锁定 nginx?

nginx-common 包自带的systemd单元文件以root身份运行master进程,这让我很紧张。

我认为它以 root 身份运行的唯一原因是绑定端口 80,但作为 root 用户太过分了,所以我以普通用户身份运行它并赋予它CAP_NET_BIND_SERVICE能力。

我已将单元文件调整为如下所示:

[Service]
Type=forking
PIDFile=/var/run/nginx/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload
ExecStop=/usr/sbin/nginx -s quit
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
Capabilities=cap_net_bind_service+=ep
user=www-data
Run Code Online (Sandbox Code Playgroud)

这种方法有什么缺点吗?nginx 是否希望成为 root 用户?有没有更好的方法来锁定 nginx?我知道有些人喜欢 chroot 它,但这似乎很麻烦。

debian nginx systemd

8
推荐指数
1
解决办法
1079
查看次数

标签 统计

debian ×1

nginx ×1

systemd ×1