- není root
- není root
- SuEXEC
- Závisí. 644 pro soubory a 755 pro složky jsou bezpečné výchozí nastavení.
Neměňte vlastnictví ničeho na www-data, pokud nechcete, aby php mohl upravovat obsah tohoto souboru/složky
Bez ohledu na cokoli jiného, co děláte:složky potřebují oprávnění ke čtení a spouštění, aby uživatel mohl najít soubory; soubory potřebují oprávnění ke čtení, aby je uživatel mohl číst. Pokud se při změně věcí zobrazí nějaké chyby oprávnění, podařilo se vám tato zásadně požadovaná oprávnění odstranit.
Pokud nezapisujete žádné soubory prostřednictvím své php aplikace, můžete ponechat soubory, které vlastníte vy:vy. Za těchto okolností platí světové povolení (xx4/5).
Pokud ponecháte soubory ve vašem vlastnictví:vy s oprávněním k souboru 644 (soubory), znamenalo by to, že pouze můžete upravovat soubory webových stránek - www-data nejste vy - takže nemůže upravovat soubory.
Pokud chcete omezit přístup k apache + vy a zablokovat všechny ostatní přístupy chown -R you:www-data *
. S oprávněním k souboru 640 a oprávněním ke složce 750 můžete upravovat, www-data mohou číst – protože pak Apache čte oprávnění skupiny (x4/5x).
Omezte na minimum cesty, do kterých Apache/php povolujete zapisovat – pokud existuje adresář tmp, do kterého aplikace potřebuje zapisovat – povolte mu zapisovat pouze do této složky - a pokud je to možné, u všech zapisovatelných míst se ujistěte, že jsou venku kořen dokumentu nebo podnikněte kroky k zajištění toho, že tato zapisovatelná cesta není přístupná z webu.
Upozorňujeme, že „vy“ by nemělo být root. Povolení přímého přístupu ssh jako root je indikátorem jiných chyb zabezpečení (například ne nepovolení přihlášení pomocí hesla), ale to je celá řada otázek sama o sobě.
Takže pokud tomu rozumím správně, pokud apache běží jako www-data a chci, aby Apache mohl číst adresář, bit x musí být nastaven pro světovou (jinou) skupinu (o+x), a to také potřebuje nastaven na všechny nadřazené adresáře v celém řetězci (www, var). A pokud chci, aby apache mohl číst ze souboru, pak je potřeba nastavit o+r bit.
To není pravda, nemusíte nastavovat rwx
pro ostatní'. Měli byste změnit vlastníka a/nebo skupinu konkrétní složky/souboru, které se snažíte chránit. Např.:
chown -R cwd:www-data /var/www/cwd.com
chmod 750 /var/www/cwd.com
Nyní pouze členové skupiny www-data
umí číst /var/www/cwd.com
. A psát do něj můžete jen vy (cwd). Pokud chcete, aby vaše aplikace (prostřednictvím Apache) zapisovaly/upravovaly soubory také v tomto adresáři, nastavte jej na 770.
Myslím, že to pokrývá všechny vaše problémy, nevidím důvod ke změně uživatele, pod kterým Apache běží.