В индексе ПС все чаще натыкаюсь на свои же заметки, но и чужие, но все они оказались не полными и тщетными, чтобы решить с ходу, данную конкретную проблему. Основная задача панели, по минимум администрировать Линукс линейку и получить рабочую станцию для сайтов на базе дефоултных настроек серверов. Увы, наличие панели из коробки не дает сегодня 100% гарантии, что Ваша CMS заведется на ее дефоултной конфигурации, поэтому приходится разбираться и администрировать СеntOS, Debian, в общем линейку Linux на предмет ее подводных камней в связке CMS с Apache, Nginx, PHP-FPM. Хотя абсолютно любая панель значительно облегчает настройку Линукса, под WordPress, Drupal, Joomla или комерческие CMS: 1C Bitrix, Webasys, Prestashop, ModX, cs cart, opencart или Magento, но увы избежать работы в *nix среде сегодня невозможно. Круто я тебя вытянул из индекса в этот топик?(вопрос к читающим через пару месяцев)

Примерно те же проблемы с правами были в коробочной версии на базе ОС Debian
дата время [crit] троло-ло open() "путь/does_not_exists" failed (13: Permission denied), client: 7.7.7.13, server: site.com, request: "POST /../../ HTTP/2.0" или ("GET /robots.txt HTTP/1.1"), host: "site.ru", referrer: "https://site.ru/"

Вы наверно подумаете, что легко и в 2 минуты получится проскочить, через эту проблему, быстро листая и Гугля, кто как ее решил, но, увы без должной подготовки - нет, если ты новичек и сейчас не сосредоточишься, то будь готов, что потеряешь херову тучу часов, а может и дней, на решении этой проблемы. Читай дальше внимательно.

Список активных процессов и какой под каким запущен смотрится двумя командами:
Код:
[root@vps777 ~]# top
или
[root@vps777 ~]# ps -aux | grep nginx
В линейке Линукс на "apt-get" архитектуре(Дебьян, Убунту и т.п.) с панелью ISPManager данная проблема решалась просто, добавлением всех участвующих пользователей в группу www-data, а пользователя www-data в группы этих пользователей, так как если не изменяет память apache и nginx крутились из под этого пользователя и эта проблема уходила, так как возможно данные процессы видели путь от корня сайта, а не главной директории сервера "/", как в коммерческой линейке красных шапок и ей подобных типа CentOS.
И поэтому на CentOS после данных манипуляций данная проблема не ушла - open() "/var/www/USER/data/www/site.ru/does_not_exists" failed (13: Permission denied)
В Дебьян она решилась набором команд: добавления пользователя в группу смотрим ТУТ, в какой группе пользователь ТУТ.
Код:
[root@vps777 ~]# id -Gn www-data
[root@vps777 ~]# id -Gn user
[root@vps777 ~]# sudo usermod -a -G mgrsecure,user1, user2, apache www-data
[root@vps777 ~]# sudo usermod -a -G mgrsecure,www-data user1
[root@vps777 ~]# sudo usermod -a -G mgrsecure,www-data user2
На CentOS этой группы www-data не было, apache под apache, nginx под apache в итоге добавление только apache во все группы привели Nginx + PHP-FPM в положение
404 Not Found
nginx/1.14.1

Код:
[root@vps777 ~]# sudo usermod -a -G mgrsecure,user1, user2,nginx apache
[root@vps777 ~]# sudo usermod -a -G mgrsecure,nginx, apache user
[root@vps777 ~]# sudo usermod -a -G mgrsecure,nginx, apache user2
Тогда я вернул пользователя apache в зад, только в его родную группу

Код:
[root@vps777 ~]# sudo usermod -G "" apache
, а вот пользователя nginx добавил во все возможные группы, но еще пользователей добавил в разные группы.

Код:
[root@vps777 ~]# sudo usermod -a -G mgrsecure,user1,user2,apache nginx
[root@vps777 ~]# sudo usermod -a -G mgrsecure,nginx,apache user
[root@vps777 ~]# sudo usermod -a -G mgrsecure,nginx,apache user2

И тогда в логах сайтов данная ошибка ушла.

Вопрос конечно к тем кто постоянно работает над администрированием Линукс, а именно разработчикам ISPManager панели, все ли правильно? Или надо как-то сделать по другому?


Предположим один человек вышел из этого положения так, ссылка(я ничего не понял, как это реализовать на ISPManager и правильно ли идти этой дорогой):
Как сменить корень документов в Apache/nginx в CentOS 7 и RHEL 7 с SELinux



Помощь слоабо понимающим и разбирающимся - делюсь самым важным - навыками.
1) Не торопимся.
2) Смотрим ВСЕ логи на премере одной ошибки в отдельности.
3) Из консоли из под пользователя у которого урезены права пытаемся, прочесть или запустить файл.

ТО ЕСТЬ - РАСШИФРОВЫВАЮ:

Логи в консоли ISPManager -> WWW -> Журналы -> site.ru.error.log + /var/log/nginx/error.log

Запуск команд от имени системных пользователей

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

Код:
su - nobody
Даёт

This account is currently not available.


Это происходит из-за того, что у этих пользователей в качестве шела указан /sbin/nologin. Можно воспользоваться параметром -s для указания другого шела:

Код:
su - nobody -s /bin/sh
И получить нужный результат, для того, чтобы в последствии увидеть ошибку.

Также надо помнить, что в скриптах желательно использовать runuser вместо su:

Код:
runuser - nobody -s /bin/sh