GNU/Linux >> Znalost Linux >  >> Linux

Pod jakým uživatelem by měl Apache a PHP běžet? Jaká oprávnění by měly mít soubory /var/www?

  1. není root
  2. není root
  3. SuEXEC
  4. 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ěží.


Linux
  1. Rozdíl mezi /var/log/messages, /var/log/syslog a /var/log/kern.log?

  2. UNIX / Linux :Jaká je správná oprávnění adresářů /tmp a /var/tmp

  3. Jaký je rozdíl mezi /bin/false a /sbin/nologin jako uživatelský shell nologin

  1. Jak najít konfigurační soubory MySQL, PHP a Apache

  2. Co jsou soubory /dev/zero a /dev/null v Linuxu

  3. Jaká oprávnění by měly mít soubory/složky mých webových stránek na webovém serveru Linux?

  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. Přidal jsem uživatele do skupiny, ale skupinová oprávnění k souborům stále nemají žádný vliv?

  3. Co je součástí /var?