Portál AbcLinuxu, 5. května 2025 16:35
Řešení dotazu:
chmod
normálně z shellu, práva se nastaví správně? Uživateli a skupině www-data
patří pro to, že pod tímto uživatelem běží webový server.
www-data
. Přepněte se na něj třeba pomocí su
nebo příkazy spusťte přes sudo
. Pokud to z shellu nepůjde, může jít buď o parametry připojení souborového systému, nebo SElinux (omezující daného uživatele). Pokud to z shellu půjde, může to být buď nějaká konfigurační volba PHP, nebo také SElinux (omezující Apache nebo PHP).
function make_dir($dir, $perm) { umask(0000); mkdir($dir, $perm); }
Možná raději takto:
function mkdir_perm($dir, $perm) { $old = umask(0000); mkdir($dir, $perm); umask($old); }
chmod
budete také potřebovat "vynulovat" masku, apod.
chmod()
nemá umask vliv, umask omezuje jen práva v okamžiku vytvoření souboru nebo adresáře.
umask
, ale jen udělat mkdir
a hned na to chmod
. Nebo se pletu?
chmod
, zbytečně.
umask()
/files/data$ ls -l drwxr-xr-x 2 www-data www-data 4096 2009-10-26 11:44 pokusNadrazeny adresar:
/files$ ls -l drwxrwxrwx 3 honza honza 4096 2009-10-26 10:42Hlavnim spravcem jsem ja.
mkdir()
, ze které vede přímý odkaz na funkci umask()
, kde je docela dlouhý popis i s příklady.
Ja bych rekl ze to bude nejaka ta konfigurační volba v PHP, jen nevim kde ji hledat.
Odpověď už jste ale dávno dostal. Tím, že ji budete ignorovat, nepřestane být pravdivá.
/tmp
a když to nepůjde, nastanou problémy. On by bohatě stačil i skript, který se pokusí použít wildcards.
Nejjednodušší je ale udělat privátní adresář buď /home/pht/tmp nebo /tmp/pht a je vymalováno.
Pro PHP ano, ale mluvil jsem spíš o linuxovém systému obecně.
Co když půjde zrovna o důležitého démona a problém nenastane hned při spuštění, ale v nestřeženém okamžiku někdy později?tak se to holt odhalí jako každé jiné selhání. Důležité věci je vhodné monitorovat. A ad
Kdyby nastavení práv na 1733 znamenalo nějaké významné posílení bezpečnostimáte pravdu, že obecně to nějaký podstatný zisk není.
To je ale dost podstatný rozdíl. Soubor /etc/shadow
není world-readable nikde (a pokud je, je to chyba), dokonce vznikl právě proto, aby nebyl world-readable (na rozdíl od /etc/passwd
, který world-readable být musí). Oproti tomu /tmp
má práva 1777 na naprosté většině systémů.
Netvrdím, že je v pořádku, když aplikace nebude fungovat, pokud jí nedovolím prohlížet obsah /tmp
. Ale spoléhat na to, že na takovou dříve či později nenarazím, bych si prostě nedovolil.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.