Здравствуйте. Подскажите пожалуйста, можно ли запускать root от имени root и чем это чревато?
Просто сайты у меня лежат в домашних директориях пользователей, права на папки с сайтами 700, и если Nginx запустить от рута, он сможет прочитать статический контент вне зависимгсти от того, есть у него права на чтение директории или нет. Или же есть аналог Apache mpm_itk для nginx?
verdex: в случае компрометации сайта ( любым способом ), злоумышленник получит доступ к серверу ОТ ИМЕНИ ПОЛЬЗОВАТЕЛЯ ВЕБСЕРВЕРА. Это и есть ответ на ваш вопрос.
Ульрих: Странно, я думал, что в случае компрометации сайта злоумышленник получит доступ к веб-серверу от имени пользователя, от которого работает PHP на зараженном сайте.
Если моя догадка верна, то будет правильным назначить пользователю www-data права r-x на папку с сайтом и все директории в пути до этой папки. Тогда Nginx сможет читать статику, а вирус останется в пределах зараженного сайта.
verdex: Я, к сожалению, nginx не использую, а в Апаче включаю модуль apache2-mpm-itk, чтобы изолировать каждый сайт друг от друга и от сервера в целом. Если сайт (веб-проект) вообще ничего не пишет в свой каталог, то можно запретить запись в конфиге сайта, тогда злоумышленник сможет только читать файлы.
Ульрих: сайты будут разные, и почти все что-то пишут в каталог, поэтому запретить запись в конфиге сайта нецелесообразно. Apache у меня тоже работает в mpm-itk, просто я еще Nginx перед Apache использую, чтобы снизить нагрузку.
Можно дать пользователю www-data права r-x на /home и все папки ниже /home через ACL
Тогда nginx сможет читать статику, а php работает под своим отдельным пользователем(каждый сайт от своего пользователя) и вирус не сможет получить доступ к файловой системе вне корня сайта.