Файл nginx php-fpm и минимальные разрешения для папок для максимальной безопасности многопользовательских / приложений

Я установил сервер nginx nginx / 1.10.2 на CentOS 7.
Я настроил nginx для использования php-fpm PHP 5.4.16 (fpm-fcgi) (сборка: 6 ноября 2016 г., 00:30:57).

Я использую новый пул, настроенный в /etc/php-fpm.d/piwik.conf:

[piwik]
user = piwik
group = piwik
listen = /var/run/php5-fpm-piwik.sock
listen.owner = nginx
listen.group = nginx
;listen.mode = 0660
;php_admin_value[disable_functions] = exec,passthru,shell_exec,system
php_admin_flag[allow_url_fopen] = off
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chdir = /

Важная часть nginx.conf:

location ~ ^/piwik/(.*)$ {
root /usr/share/nginx/html;
try_files $uri =404;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/php5-fpm-piwik.sock;
# fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# fastcgi_param PATH_INFO $fastcgi_script_name;
# include fastcgi_params;
include fastcgi.conf;
# fastcgi_param REQUEST_METHOD $request_method;
fastcgi_index info1.php;
}

Когда я прошу Http: //localhost/piwik/info1.php это показывает мне
_SERVER [«ПОЛЬЗОВАТЕЛЬ»] piwik

Так что теперь у меня только проблема с установкой прав доступа к папке
/ USR / доли / Nginx / html / Piwik.

Поскольку я прочитал, пользователю нужно разрешение x на весь путь, чтобы пройти в нужную папку.
Папка и файлы должны быть доступны для чтения, а для piwik некоторые папки должны быть доступны для записи.
Поскольку CentOS 7 по умолчанию включает SELinux, мне пришлось выполнить следующие команды, чтобы получить доступ для записи:
chcon -R -t httpd_sys_content_rw_t / usr / share / nginx / html / piwik / tmp /
systemctl перезапустить php-fpm

Я изменил пользователя и группу на piwik.
Но когда я установил следующие права
chmod 700 -R / usr / share / nginx / html / piwik /
Я не могу получить доступ к файлам. Я получаю разрешение отказано в ошибке.
Я понял, что мне нужны права 701:

drwx-----x. 13 piwik piwik     4096 18. Aug 09:49 .
drwxr-xr-x.  5 root  root      4096 16. Aug 04:27 ..
-rwx-----x.  1 piwik piwik      932  8. Jun 2015  bower.json
-rwx-----x.  1 piwik piwik    38272 11. Apr 2016  CHANGELOG.md
...
...

Пожалуйста, помогите мне понять, почему я должен включить исполняемый бит для других пользователей.

Хорошо, для обслуживания статических файлов даже 775 должны быть установлены ?!

Благодарю вас.

С наилучшими пожеланиями

РЕДАКТИРОВАТЬ:

Проблема не в обслуживании динамических файлов php. Это обслуживание статических файлов, потому что nginx работает под одним конкретным пользователем.

Я нашел эту ссылку:
https://serverfault.com/questions/370820/user-per-virtual-host-in-nginx

Полезный комментарий был:
При настройке vhost укажите корневую группу документов www-data и perms 0710.
(поскольку для настройки nginx требуется root, нет проблем с тем, что ваша автоматизация также установит необходимые разрешения).
Тогда содержимое docroot просто должно быть o + x для каталогов и o + r для файлов.

Так что я думаю, что это хорошая установка:
nginx работает как пользователь nginx
для разделения разных пользователей (приложений) установите следующие разрешения (запуск от имени root):

ls -la /usr/share/nginx/
drwx--x--x.  6 nginx nginx 4096 18. Aug 19:18 html

groupadd pydio
useradd -g pydio pydio

mkdir /usr/share/nginx/html/pydio/
chown pydio:pydio -R /usr/share/nginx/html/pydio/
find /usr/share/nginx/html/pydio/ -type d -exec chmod 701 {} \;
find /usr/share/nginx/html/pydio/ -type f -exec chmod 704 {} \;
chmod 710 /usr/share/nginx/html/pydio/

Пожалуйста, кто-нибудь может проверить?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]