GNU/Linux >> Znalost Linux >  >> Linux

Pod jakým uživatelem by měly NGinx a PHP běžet?

Řešení 1:

Funguje to takto:Když se přihlásíte přes FTP/SSH a nahrajete soubory, jsou vytvořeny s vašimi oprávněními. Pravděpodobně váš webroot je světově zapisovatelný (0777), což není bezpečné - každý uživatel v systému tam může něco napsat. PHP běží s různými uživatelskými právy (Jsou specifikována v PHP-FPM config, ne nginx config), a jelikož je adresář světově zapisovatelný, může tam zapisovat i uživatel PHP (www-data). Ale vlastníkem tohoto souboru je www-data, nikoli váš účet. Jsou to 2 odlišné účty na úrovni oprávnění souborového systému.

Navrhuji vám vytvořit vyhrazeného uživatele s co nejmenšími právy, který by vlastnil webroot adresář a byl by používán pro FTP/SSH upload A spouštěl by php. Měli byste změnit konfiguraci PHP-FPM, v pracovní sekci je položka uživatele a konfigurace NGINX, takže můžete učinit soubory svých webových stránek nečitelnými a bezpečnějšími.

Nespouštějte PHP s privilegovaným uživatelem (možnosti sudo, práva zápisu mimo docroot), což by mohlo způsobit ohrožení zabezpečení serveru.

Řešení 2:

www-data uživatel a skupina jsou zcela standardní. Může to být www nebo web na jiných systémech, ale myšlenka je stejná:Spouštějte webové služby s vyhrazeným účtem. Pokud je tedy váš webový server kompromitován, útočník bude mít přístup pouze k souborům, které byly tomuto účtu přiděleny. .

Pokud uživatel musí spravovat webové služby, měli byste jej přidat do příslušné skupiny (www-data) nebo mu umožnit su (nebo sudo) příslušnému uživateli (stále www-data).


Linux
  1. Co je uživatel Linuxu?

  2. Zvuková témata v Linuxu:Co by měl vědět každý uživatel

  3. Co je to jádro Linuxu a měli byste upgradovat na nejnovější jádro?

  1. Získat čas uživatele a jádra běžícího procesu?

  2. CHYBA 403 při načítání zdrojů jako CSS a JS v mém index.php

  3. Jaký je rozdíl mezi root a sudo?

  1. Instalace a nastavení PHP a Nginx na Ubuntu 20.04

  2. Jaký je rozdíl mezi xdebug.ini a php.ini

  3. Spuštění phpmyadmin a suphp