linux - uWSGI vassal 没有以正确的权限生成
问题描述
我有一个我希望以cuckoo
用户身份运行的附庸。vassal 创建一个 Nginx 可以读取和写入的套接字。uwsgi
目前,只有当用户权限应用于 socket时,vassal 才会生成/var/run/cuckoo/cuckoo.sock
。当数据发布到 Nginx 并发送到 vassal 以写入文件系统时发生的问题,数据是使用uwsgi
而不是cuckoo
用户权限写入的。下面是各自的配置。关于如何正确创建具有权限的 vassal 及其各自的套接字cuckoo
以便通过进程写入的数据将作为cuckoo
用户写入的任何想法?
- CentOS Linux 版本 7.9.2009
- uwsgi-2.0.18-8.el7.x86_64
- uwsgi-plugin-common-2.0.18-8.el7.x86_64
- uwsgi-plugin-python2-2.0.18-8.el7.x86_64
/etc/uwsgi.ini
[uwsgi]
uid = uwsgi
gid = uwsgi
emperor = /etc/uwsgi.d
chmod-socket = 660
emperor-tyrant = true
cap = setgid,setuid
/etc/uwsgi.d/cuckoo.ini
[uwsgi]
socket = /var/run/cuckoo/cuckoo.sock
chmod-socket = 766
plugins = python
virtualenv = /opt/cuckoo/cuckoo-virtual-env
module = cuckoo.apps.api
callable = app
uid = cuckoo
gid = cuckoo
env = CUCKOO_APP=api
env = CUCKOO_CWD=/opt/cuckoo/cuckoo-working-dir
套接字权限
$ ls -l /var/run/cuckoo/
total 0
srwxrw-rw-. 1 uwsgi uwsgi 0 Nov 5 13:47 cuckoo.sock
$ ls -l /run/uwsgi/
total 4
srw-rw----. 1 uwsgi uwsgi 0 Nov 5 13:47 stats.sock
-rw-r--r--. 1 uwsgi uwsgi 6 Nov 5 13:47 uwsgi.pid
配置权限
$ ls -l /etc/uwsgi.*
-rw-r--r--. 1 uwsgi uwsgi 117 Nov 5 13:46 /etc/uwsgi.ini
/etc/uwsgi.d:
total 4
-rw-r--r--. 1 uwsgi uwsgi 288 Nov 5 04:22 cuckoo.ini
解决方案
由于我们没有尝试托管多个应用程序,因此解决方法是以uwsgi
应用程序用户身份运行,在我们的例子中,cuckoo
用户:
/etc/uwsgi.ini
[uwsgi]
uid = cuckoo
gid = cuckoo
emperor = /etc/uwsgi.d
chmod-socket = 660
emperor-tyrant = true
cap = setgid,setuid
并更新了配置权限:
$ ls -l /etc/uwsgi.*
-rw-r--r--. 1 cuckoo cuckoo 118 Nov 5 18:00 /etc/uwsgi.ini
/etc/uwsgi.d:
total 4
-rw-r--r--. 1 cuckoo cuckoo 270 Nov 5 17:54 cuckoo.ini
这允许 vassal 正确生成并且 Nginx 可以访问套接字。
推荐阅读
- git - git status 的 Git 别名列出了相对于存储库根目录的文件
- php - 如何将字符串添加到php函数内的数组中
- ruby-on-rails - Rails Action Mailer 在本地工作,但不能在生产环境中工作:Heroku:内部服务器错误
- python - 绘制熊猫 DataframeGroupbySeries 的 HIST
- javascript - 电子没办法换驱动?
- spring - 如果注解包含参数,建议不会执行
- google-chrome - Firefox Native addon(win7):如何在给定 Windows HWND 的情况下获取 window.id
- javascript - Chrome 扩展:如何在 2021 年安装类似 choex 的 ES6 npm 脚本?
- laravel - 如何在 Laravel 6 中隐藏 url 中的 id?
- ruby-on-rails - 安装 ruby-opencv gem 时出错,找不到 opencv_calib3d