Portál AbcLinuxu, 6. května 2025 16:10

Dotaz: Nastavení chown a chmod pro webserver

23.10.2014 14:26 Dědek
Nastavení chown a chmod pro webserver
Přečteno: 686×
Odpovědět | Admin
Dobrý den, na stará kolena jsem si nainstaloval webový server. Jako OS jsem zvolil poslední "stable" verzi "Debian". Nainstaloval Apache2, PHP, MySQL a nastavil server. Spustil program "WinSCP" a přihlásil se na server jako "root". Následně jsem veškeré soubory PHP nakopíroval do adresáře "/var/www".

Nyní řeším, jakého "vlastníka" mám nastavit pro všechny soubory a jaké přidělit práva? Pomůže někdo? Děkuji
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

23.10.2014 14:56 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
Odpovědět | | Sbalit | Link | Blokovat | Admin
Záleží na tom, zda používáš mod_php nebo FastCGI. V obou případech však budou fungovat práva 604 pro soubory a 705 pro adresáře.

Jako vlastníka souborů včetně adresáře /var/www používám běžného uživatele - nikdy roota. Edituje se to pak mnohem jednodušeji, protože se nemusím jako root přihlašovat a mohu to dělat přímo ze svého účtu.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
23.10.2014 15:08 Dědek
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
Děkuji Kite za pomoc..
... zda používáš mod_php nebo FastCGI.
Používám mod_php.
... používám běžného uživatele - nikdy roota.
Tak, že nemusí být vlastník www-data? Jde mi o to, aby instalační scripty mohl vytvořit / zapisovat do konfiguračních souborů.

Děkuji
alles32 avatar 23.10.2014 15:28 alles32 | skóre: 15 | Evropa
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
vlastnik(skupina) musi byt shodna s userem, pod kterym bezi apache aby tam mohl zapsat. na debianu tedy www-data.
23.10.2014 17:39 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
Nejlépe bude, pokud instalační skripty bude spouštět vlastník adresáře /var/www, ale není to podmínkou. Stačí po dobu instalace nastavit práva na adresář 777 a pak je vrátit zpět.

Vlastník nemusí být www-data. Je pouze důležité, aby Apache mohl z toho adresáře číst a pokud možno jiní uživatelé ve stejné skupině nesměli nic. Proto se doporučují práva 604, resp. 705, aby vlastník adresáře mohl ty soubory editovat.

Pokud však instalaci budeš provádět přes webové rozhraní, instalace poběží pod uživatelem www-data. Proto bude logické, když uživatel www-data bude vlastníkem takového adresáře. V tom případě budou dokonce stačit práva 600, resp. 700.

Obě řešení mají své výhody i nevýhody.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Josef Kufner avatar 23.10.2014 17:49 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
604 a 705? Co to je za blbost? Proč nedat oprávnění skupině, která patří web serveru, ale dát je komukoliv jinému?
Hello world ! Segmentation fault (core dumped)
23.10.2014 20:13 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
Skupina users přece nepatří webserveru. A nechceme přece, aby mi ostatní uživatelé z mé skupiny lezli do skriptů.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Josef Kufner avatar 23.10.2014 20:52 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
A proč chceme, aby tam lezl kdokoliv jiný?
Hello world ! Segmentation fault (core dumped)
23.10.2014 21:01 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
Protože ten "kdokoli jiný" je právě ten Apache.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Josef Kufner avatar 24.10.2014 09:23 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
A také kopec dalších služeb, které na tom stroji běží.
Hello world ! Segmentation fault (core dumped)
24.10.2014 09:33 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
Uznávám, že dnes už se to dělá jinak, ale na webhostingu, kde jsou všichni uživatelé ve skupině users a používá se mod_php, to jinak nejde. Na vlastní stroji si však admin může nastavit práva praktičtěji, viz níže.

Naštěstí se na veřejném hostingu používá FastCGI téměř systematicky, takže to není nutné řešit - mod_php se vlastně používá už jen u privátních hostingů.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Josef Kufner avatar 23.10.2014 17:58 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ve výchozí konfiguraci Debianu běží Apache pod uživatelem www-data. Nastav tedy oprávnění tak, aby je tento uživatel mohl číst a pokud je potřeba, tak i zapisovat. Tedy buď budou patřit uživateli www-data a soubory budou mít oprávnění alespoň 400, resp. 500 pro adresáře, případně 600, resp. 700, pokud je požadována možnost zápisu. Nebo bude jim nastavena skupina www-data a oprávnění na 640 a 750, či 660 a 770. Také je vhodné nastavit umask na 002 namísto 022, aby nově vytvořené adresáře a soubory byly zapisovatelné skupinou, jinak to je otrava. Zda povolíš přístup i ostatním záleží na tobě, toto jsou minimální hodnoty.

PHP se dá nastavit také tak, aby script běžel pod tím uživatelem, kterému patří. Pokud provozuješ věci více uživatelů, které nemáš zcela pod kontrolou, je to vhodné použít. Pak není oprávnění potřeba nijak řešit, jsou přirozeně správně. Snad jen odebrat přístup ke čtení ostatními u souborů s hesly od databáze.
Hello world ! Segmentation fault (core dumped)
23.10.2014 19:23 Marek
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
Díky a je lepší nastavit www-data jako vlastníka nebo skupinu? Nebo je to buřt?
Také je vhodné nastavit umask na 002 namísto 022, aby nově vytvořené adresáře a soubory byly zapisovatelné skupinou
Ten umask se nastavuje jen pro adresáře předpokládám, a jen pro ty koncové? Nebo celá posloupnost vnoření?
Josef Kufner avatar 23.10.2014 20:53 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
umask je pro proces. Je to maska podle které se nastavují oprávnění novým souborům (a adresářům).
Hello world ! Segmentation fault (core dumped)
23.10.2014 20:15 Dědek
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
Trochu v tom plavu. Když to shrnu tak mám na výběr mimo jiné 2 možnosti

1 MOŽNOST
nastavení pro všechny soubory a adresáře
- uživatele nastavím na www-data
- skupinu nastavím na   root

a

- soubory nastavím na  0400 (bez možnosti zápisu) nebo na 0600 (s možností zápisu)
- adresáře nastavím na 0500 (bez možnosti zápisu) nebo na 0700 (s možností zápisu)
2 MOŽNOST
nastavení pro všechny soubory a adresáře
- uživatele nastavím na root
- skupinu  nastavím na  www-data

a

- soubory nastavím na  0640 (bez možnosti zápisu) nebo na 0660 (s možností zápisu)
- adresáře nastavím na 0750 (bez možnosti zápisu) nebo na 0770 (s možností zápisu)
Chápu to dobře? A co "x" ? (nastavení pro spouštění scriptů) to není potřeba vůbec pro php? Díky
23.10.2014 20:26 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
Uživatele nastavíš na "dedek", skupinu nastavíš na "www-data". Práva 640 a 750, se zápisem 660 a 770.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Josef Kufner avatar 23.10.2014 20:55 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
PHP zdrojové soubory čte, nespouští je. Proto nepotřebuje práva ke spuštění. Pokud bys používal tradiční CGI nebo je spouštěl ze svého shellu, budeš chtít mít na prvním řádku "#!/usr/bin/env php" a nastavená práva ke spuštění; webservery to však řeší trošku jinak.
Hello world ! Segmentation fault (core dumped)
23.10.2014 21:02 Dědek
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
Rozumím, a není tedy v tom případě u složek zbyteční nastavení 0770, když to apache nespouští a já taky ne, nestačí tam 0660? Pokud tedy platí načítání i pro soubory css js a obrázky. Díky
23.10.2014 21:15 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
Zkus to a uvidíš :-)

... a pak to zase raději vrať na 770.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
23.10.2014 21:21 Dědek
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
Forbidden :-D

Ale proč, když se nic nespouští?
23.10.2014 21:25 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
Spouští se procházení adresáře. Prostě pro adresáře ta práva fungují trošku jinak než pro soubory.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Josef Kufner avatar 24.10.2014 09:28 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
"Spuštění" adresáře znamená povolení přístupu k jeho obsahu a umožnění chdir do něj. Pokud adresář má oprávnění --x, můžeš otevřít soubor v něm, pokud víš, jak se jmenuje. S oprávněními r-- můžeš zjistit jaké soubory v něm jsou, ale nemůžeš je otevřít. Se zápisem je to podobné.
Hello world ! Segmentation fault (core dumped)
vdusek avatar 23.10.2014 21:43 vdusek | skóre: 27
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
Odpovědět | | Sbalit | Link | Blokovat | Admin

Pokud nevíš kudy kaam, na čistý Debian nainstaluj ISPConfig  a užívej si spokojeného užívání webů

 

Všechny weby pod jedním userem je cesta do pokel. Jeden zavirovaný web ti zbouchne všechny

23.10.2014 21:54 Dědek
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
Všechny weby pod jedním userem je cesta do pokel. Jeden zavirovaný web ti zbouchne všechny
A jedna lajdácká chyba programátora vytvářející ISPConfig a má důvěra v tuto aplikaci mě stála veřejnou ostudu, zveřejnění několika DB, 20 bezesných nocí, a stres za 10let života! A vyjádření tech. support? Sorry! We accept no liability for any losses. Děkuji, nechci... :-D
vdusek avatar 23.10.2014 22:44 vdusek | skóre: 27
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver

Stále lepší jedna odstraněná chyba, než totálně blbě udělaná instalace od uživatele, který netuší co dělá.

 

BTW - co to bylo za chybu? Jak je to dlouho?

23.10.2014 23:35 Dědek
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
Chlape nevím co to bylo přesně za chybu, promiň, že nemůžu souložit, už je to pár let :-( Chyba byla rychle odstraněna, nedůvěra však zůstala...
23.10.2014 23:37 Dědek
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
-edit-

sloužit, ne souložit! :-D I když to taky už ne :-D :-D :-D
vdusek avatar 24.10.2014 00:07 vdusek | skóre: 27
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver

Perfekt překlep, dík

23.10.2014 21:52 scott | skóre: 15
Rozbalit Rozbalit vše Re: Nastavení chown a chmod pro webserver
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nebo si vyzkoušej nainstalovat apache-mpm-itk => díky tomu můžeš v každém virtualhostu definovat pod jakým uživatelem/skupinou budou procesy webserveru i php běžet. Odpadá pak často neustálé zkoumíní práv..

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.