Безопасно ли менять каталог веб-сервера root на владельцев root: www-data с правами 775? - PullRequest
1 голос
/ 29 февраля 2020

У меня была проблема с функцией PHP fwrite, которая ничего не писала, и я подумал, что это из-за прав.

Один apache процесс выполняется root, а несколько других www-data:

$ ps -aux | grep apache
root 21239 0,0 0,3 222104 26524? Сс 02:31 0:00 / usr / sbin / apache2 -k start
www-data 21240 0,0 0,1 222316 13736? S 02:31 0:00 / usr / sbin / apache2 -k start
...

Веб-каталог root принадлежит root: root без записи права для владельца группы (755):

/ var / www # ls -l
drwxr-xr-x 9 root root 4096 29 февраля 02:11 html

Поэтому я изменил владельца группы каталога root на www-data и получил права на запись:

/ var / www # chown root: www-data html
/ var / www # chmod 775 html
/ var / www # ls -l
drwxrwxr-x 9 root www-data 4096 29 февраля 02:11 html

Теперь все заработало. У меня вопрос, если это правильная и, самое главное, безопасная установка.

1 Ответ

0 голосов
/ 29 февраля 2020

Это потому, что Apache работает как www-data в Ubuntu. Но если вы скачаете исходный код и скомпилируете его, он будет работать от имени пользователя daemon. Папки, которые использует Apache, должны принадлежать пользователю Apache работает как.

Итак, если вам нужно изменить пользователя и группу Apache по умолчанию, измените / добавьте строку:

User <your-username> # (Without angle-bracket)
Group <your-group> # (Without angle-bracket), this setting is usually the same as the user

Вы не можете писать, используя PHP, потому что вы используете модуль php в apache. Если вы используете PHP -FPM, вам придется изменить пользователя и группу по умолчанию в файле PHP -FPM www.conf. Вы не используете PHP -FPM согласно предоставленной вами информации, следовательно, когда вы изменяете пользователя и группу Apache, она также применяется к PHP, так как PHP выполняется в Apache. Если у вас много посетителей, и ваш сайт должен быть быстрее, включите PHP -FPM, выполнив следующее:

1) Выгрузите mod_ php (номер версии) ), запустив:

sudo a2dismod php(version-number)

(необязательный шаг) 2) Возможно, вам потребуется использовать mpm_event и выгрузить mpm_prefork. Вы можете увидеть странное сообщение о конфликте и прочем, но проигнорируйте его. Вы можете сделать это, выполнив:

sudo a2dismod prefork && sudo a2enmod event

3) Установить PHP -FPM:

sudo apt install php(version-number)-fpm && sudo service php(version-number)-fpm start

4) Включить модуль proxy_fcgi в Apache:

sudo a2enmod proxy_fcgi

5) Добавьте в файл apache2.conf следующее:

<FilesMatch "\.ph(p[2-6]?|tml)$">
SetHandler "proxy:fcgi://localhost:9000"
</FilesMatch>

6) Выполните:

sudo service apache2 restart

И все готово!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...