uwsgi/nginx, как работают разрешения? в чем разница между uid/gid и chown-socket?

У меня есть несколько сайтов, у каждого сайта есть свой файл конфигурации uwsgi, который выглядит так:

[uwsgi]
...
uid = nginx
gid = mysite
chown-socket = nginx:mysite
...

Итак, мой сокет находится в /var/sockets/:

srwxr-xr-x 1 nginx mysite 0 Sep 13 20:12 mysite_uwsgi.sock

Путь моего приложения — /srv/www/mysite/, который также находится под nginx:mysite, иначе служба nginx не сможет получить доступ к папкам, когда я хочу загрузить файлы. (все папки под 755, файлы 644)

Обычно это папка drwxr-xr-x 6 nginx mysite и файлы -rw-r--r-- 1 nginx mysite. И когда я загружаю файл, он загружается как -rw------- 1 nginx mysite. Это правильно? почему он не загружается как 0644? Что определяет, кто является владельцем/группой и разрешениями, которые должен иметь этот файл?

Моя виртуальная среда (папка venv) также находится в разделе nginx:mysite (все папки под номером 755, файлы 644). Это создаст мне проблемы в будущем? Что еще я могу сделать?


person ezdookie    schedule 14.09.2015    source источник


Ответы (1)


Nginx не присваивает разрешения папкам, операционной системе, если Linux выполняет эту работу. Nginx создает только одного пользователя с обычными www-данными, который будет использовать используемый вами интерпретатор wsgi, например gunicorn или fastcgi. Папка, которую вы хотите сделать местом назначения для загрузки файлов, вы даете больше разрешений для папки, чем для файлов, разрешения для папки отличаются от разрешений для файлов.

Подумайте таким образом, разрешения 764, например, являются десятичными, но что означает 764? Мы разделяем три цифры 7-6-4, и он преобразует каждую цифру в двоичную систему, которая дает нам 111-110-100, во всех разрешениях они предназначены для чтения, записи и выполнения. Итак, вы даете:

Первая цифра 111 - rwe, разрешение пользователю на чтение, чтение файла, запись в файл и выполнение Вторая цифра 110 - rw, разрешение пользователям группы на чтение и запись Третья цифра 100 - Остальные пользователи могут читать файл, а не написать или выполнить.

Это относится к файлам и каталогам, вы можете изменить атрибуты с помощью chmod.

person Community    schedule 16.09.2015