 
            Zdravím všechny,
chtěl jsem Vás poprosit o radu/názor ohledně nastavení user/group u php-fpm z hlediska bezpečnosti. Používám php-fpm v kombinaci s nginxem a největší obavu mám z napadení php aplikace. Chtěl jsem proto nastavit souborová práva takovým způsobem, aby se v případě napadaní aplikace minimalizovala možnost jejího zneužití k šíření malware.
Samozřejmě jsem přečetl různé návody na netu a pro každou php aplikaci si vytvářím vlastního uživatele, pod kterým běží php-fpm pool (user "project", group "project"). Uživatel www-data (nginx) pak je součástí skupiny "project", aby měl přístup k souborům. Na všechny složky jsem nastavil právo jen pro čtení (440), pouze u "tmp" složek, kde si php aplikace vytváří dočasné soubory, jsem nastavil právo 640. V nginxu jsem pak nastavil, že se ze složky "tmp" nesmí nic servírovat ven (php aplikace tam ukládá jen soubory pro svoji vnitřní potřebu, není potřeba k nim přistupovat zvenčí).
Celé mi to přišlo jako ohromné řešení, dokud mi nedošlo, že owner souborů může provést chmod. Tzn. běžící php-fpm pool si může na složkách či souborech nastavit právo pro zápis, "kompromitovat" soubory a servírovat je návštěvníkům.
Udělal jsem tedy co nejstriktnější omezení u ngnixu - tzn. přesně jsem vyjmenoval z jakých složek se můžou servírovat jaké soubory (např. z "/assets" pouze .js, .css., .jpg, z "/" jen index.php, z "/tmp" složky vůbec nic). Pořád mi ale vrtá hlavou nastavení přístupu k souborům.
Jediné řešení, které mě napadlo je, že bych musel pro daný projekt vytvořit uživatele dva a jednu skupinu. Php-fpm pool by pak běžel pod "project-pool":"project", všechny soubory by ale vlastnil "project":"project". Skupina by měla přístup jen pro čtení a php-fpm pool by to nemohl změnit. Skupina by měla práva zápisu jen do složky "/tmp", aby si mohla aplikace vytvářet dočasné soubory.
Jenže jsem na takové nastavení práv nikde nenarazil a tak nevím, jestli jsem to moc "nepřekombinoval" :-D
Předem díky za reakce,
Honza