2016-02-18 3 views
3

У меня есть настройка Django в NGINX + uWSGI. Я могу заставить его работать под моим текущим пользователем (с помощью question, который я попросил несколько дней назад), но теперь я хочу, чтобы запустил uwsgi --ini uwsgi.ini в качестве пользователя с ограниченным доступом.Как запустить uWSGI в качестве пользователя с ограниченным доступом?

Вот что я сделал до сих пор:
1. Создал пользователя djangouser без доступа в систему и без домашнего каталога.
2. Пользователь Добавлено nginx в группу djangouser
3. Размещенной мои Джанго файлы в /mnt/django каталоге и измененный файл разрешения django в drwxrwx--- djangouser djangouser (рекурсивный)
4. Изменены конфигурационные файлы, чтобы соответствовать местоположению файлов

uwsgi. ини файл

[uwsgi] 
chdir=/mnt/django/project/awssite 
module=awssite.wsgi 
home=/mnt/django/project 
master=true 
processes=2 
uid=djangouser 
gid=djangouser 
socket=/mnt/django/djangosocket/awssite.socket 
chmod-socket 
vacuum=true 

Когда я пытаюсь запустить uwsgi --ini uwsgi.ini, это ошибка я получаю

[uWSGI] getting INI configuration from uwsgi.ini 
*** Starting uWSGI 2.0.12 (64bit) on [Thu Feb 18 00:18:25 2016] *** 
compiled with version: 4.8.3 20140911 (Red Hat 4.8.3-9) on 01 February 2016 04:17:11 
os: Linux-4.1.13-19.31.amzn1.x86_64 #1 SMP Wed Jan 20 00:25:47 UTC 2016 
nodename: ip-10-200-1-89 
machine: x86_64 
clock source: unix 
detected number of CPU cores: 1 
current working directory: /home/ec2-user 
detected binary path: /usr/local/bin/uwsgi 
!!! no internal routing support, rebuild with pcre support !!! 
chdir() to /mnt/django/project/awssite 
chdir(): Permission denied [core/uwsgi.c line 2586] 
chdir(): Permission denied [core/uwsgi.c line 1608] 

Примечание: Когда я добавил мой зарегистрированный пользователь в djangouser группы, uwsgi --ini uwsgi.ini побежал отлично и я смог загрузить страницы Джанго.

Я не уверен, где еще добавить разрешения, позволяющие этому работать. Добавление sudo chown-socket=djangouser:djangouser в uwsgi.ini тоже не сработало.

Я ценю помощь :)

ответ

3

Если вы хотите запустить uWSGI в качестве конкретного пользователя, Есть только два варианта:

  1. запустить uWSGI сервер непосредственно от этого пользователя
  2. запустить uWSGI как корень и добавьте опции uid и gid.
1

Вы можете создать пользователя и установить свойства uid/gid в файле uwsgi ini.

[uwsgi] ... uid=myuser gid=mygroup

Я проверил это с uwsgi версии 2.0.12-Debian, и она работала для простого приложения CGI с помощью python3 virtualenv.

http://uwsgi-docs.readthedocs.io/en/latest/Options.html#uid

Смежные вопросы