linux uwsgi 非root,ubuntu-除非root用户,否则uWSGI Emperor权限被拒绝

我试过使用二进制文件本身的标志(–uid www-data –gid www-data)并将其设置在我的配置中:

uid = www-data

gid = www-data

但是套接字始终是使用我正在使用的帐户生成的,所以我收到nginx的权限被拒绝错误.

有人知道为什么吗?

附加问题:有谁知道nginx和uwsgi在哪里设置了用户?我有另一台一直在工作的服务器,并且在任何配置文件中都没有设置uid或gid,但是一切都使用了www-data.

回答显然,如果您按照我的尝试从终端启动服务,即(user @ server:〜/ $uwsgi –uid www-data –gid www-data),它将始终与用户一起启动并运行谁叫它解释了为什么我觉得它没有遵守我的uid和gid标志.当我如下所述运行它时,它确实以正确的用户/组www-data运行.

更新

如您所说,我正在启动uWSGI,“ sudo服务uwsgi start”应该触发该文件(/etc/init/uwsgi.conf):

description "uWSGI"

start on runlevel [2345]

stop on runlevel [06]

respawn

env UWSGI=/home/ccadmin/.local/bin/uwsgi

env LOGTO=/var/log/uwsgi/emperor.log

exec $UWSGI --master --emperor /etc/uwsgi/vassals --die-on-term --uid www-data --gid www-data --logto $LOGTO

但是,使用此配置,我的emperor.log文件显示:

execvp(): Permission denied [core/emperor.c line 1481]

[emperor] binary path: /home/ccadmin/.local/bin/uwsgi

[emperor] is the uwsgi binary in your system PATH ?

TIME STAMP - [emperor] curse the uwsgi instance cc_uwsgi.ini (pid: ####)

TIME STAMP - [emperor] removed uwsgi instance cc_uwsgi.ini

如果我将–uid和–gid更改为root,则一切正常.它必须是一些简单的权限,但是对于linux来说是新手,我发现很难查明.

同样奇怪的是,它正在向我询问我的系统路径中的uwsgi二进制文件……应该存在吗?因为我已经将/home/ccadmin/.local/bin添加到/ etc / environment中的系统路径中.不应该在那里吗?还是应该一直到二进制文件? (即,将/home/ccadmin/.local/bin/uwsgi insetad仅添加到/ bin)

解决方法:

您应该以root用户身份启动uwsgi,否则,您将无法切换到其他用户.基本的Unix概念.通过sudo使用service uwsgi start命令.

标签:nginx,ubuntu,uwsgi

来源: https://codeday.me/bug/20191028/1953181.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值