apache — Создание индивидуальных пулов php5-fpm безопасным способом

При создании пулов php5-fpm для пользователя в настройке Apache mod_fastcgi, какой из следующих способов является наиболее безопасным и эффективным способом предоставления разрешений веб-сервера пулу PHP?

Установите группу в www-data:

listen.owner = username
listen.group = www-data
listen.mode = 0660

user = username
group = www-data

В то время как это работает, файлы, созданные PHP, будут иметь право собственности на Имя пользователя: WWW-данные в то время как файлы, загруженные через SCP, будут иметь Имя пользователя: имя пользователя.


добавлять www-data в дополнительную группу username:

listen.owner = username
listen.group = username
listen.mode = 0660

user = username
group = username

usermod -aG username www-data

Какие из этих вариантов безопасны? Вы также можете поделиться лучшим методом.

Я проверил следующие руководства:

Но все они были написаны до ошибки # 67060 был обнаружен и исправлен.

6

Решение

Я использую следующую настройку на моем LEMP (Nginx + PHP-FPM). Для Apache это также должно быть применимо.

PHP-FPM запускает несколько пулов как nobody:user1, nobody:user2

Nginx работает как nginx:nginx

пользователь nginx является членом каждого user1, user2.. группы:

# usermod -a -G user5 nginx

Права доступа к файлам:

root:root    drwx--x--x   /home
user1:user1  drwx--x---   /home/user1                       (1)
user1:user1   rwxr-x---   /home/user1/site.com/config.php   (2)
user1:user1  drwxrwx---   /home/user1/site.com/uploads      (3)
nobody:user1  rw-rw----   /home/user1/site.com/uploads/avatar.gif   (4)

(1) домашний каталог пользователя не имеет x разрешение на otherтак пул php-fpm работает как nobody:user2 не будет иметь доступа к /home/user1 и наоборот.

(2) PHP-скрипт не имеет w за group, поэтому он не может создавать файлы в htdocs.

(3) Вкл uploads dir мы должны вручную включить доступ для записи для группы user1, чтобы включить php скрипт для размещения файлов там. Не забудьте отключить PHP-обработчик для uploadsв nginx это сделано

server {
....
location ^~ /uploads/ { }

но для Apache вы должны проверить.

(4) загруженные файлы также должны иметь w за group если мы хотим user1 чтобы иметь возможность редактировать эти файлы позже через FTP или SSH (вход в систему как user1:user1). PHP-код также можно редактировать через FTP, так как user1 это его owner,

Nginx будет иметь read доступ ко всем пользователям и write доступ ко всем загрузкам пользователя, начиная с пользователя nginx является членом каждого user1, user2… группы.
Вы не должны забывать добавить его во все последующие группы. Вы также можете изменить useradd скрипт, чтобы сделать это автоматически.

0

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

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

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