Zdravím,
můj problém je v podstatě jednoduchý, rozbaluji zip soubor do složky a toto je řádek, který mi dělá problém:
$fp=fopen($zipdir."/".zip_entry_name($zip_entry),"w");
a ten problém je zde:
Warning: fopen() [function.fopen]: SAFE MODE Restriction in effect. The script whose uid is 103576 is not allowed to access /home/www/example.com/subdomains/www/xml/452060310105447_0 owned by uid 33 in /home/www/example.com/subdomains/www/src/rhkFunctions.php on line 25
Je možné to nějakým způsobem obejít tak abych nemusel vypínat safe mode ??
Fórum › PHP
Práce se soubory
Buď přes správce souborů (konzolu, etc.) nebo v php pomocí http://cz.php.net/manual/en/function.chown.php
Pokud je to jednorázovka a máš administrátorská práva, tak můžeš změnit vlastníka.
Pokud jde o normální funkci té aplikace, která umožňuje upload a rozbalení archivů, tak to budeš muset řešít jinak.
Obecně, jak ti z té chybové hlášky asi došlo, safe_mode hlídá, jestli skript vlastněný jedním uživatelem nesahá na datá vlastněná někým jiným. Zároveň ten http server a skript taky většinou (rozhodně ve tvém případě) běží pod jiným uživatelem, než je vlastník skriptu, takže i když na cizí data nesaháš, ale třeba ve svém adresáři (který umožňuje zápis ostatním) tím skriptem vytvoříš podadresář, tak to projde, ale bude vytvořen a vlastněn tím uživatelem, pod kterým skript beží, takže ta kontrola zařve později až se do něj pokusíš zapisovat dál. Stejně tak se soubory.
Takže řešení, která mě zrovna napadají:
Pokud máš ten systém pod kontrolou, nebo je admin vstřícný, tak můžeš vypnout safe_mode. Úplně, nebo pro vybrané skripty (adresáře), omezit ho na safe_mode_gid, atd. Použít suexec, suphp, atd. pro spouštění těch skriptů pod účtem jejich vlastníka. Jednoúčelové privilegované pomocné programy a kdovíco ještě.
Bez administračních zásahů:
Adresáře si připravit předem a nevytvářet další, soubory v nich jednou vytvořit a pak na ně skriptem už nesahat (klasicky třeba obrázky, skript zpracuje upload a pak jen generuje odkazy).
Nepracovat se souborovým systémem přímo, ale funkcemi pro "vzdálený" přístup pod určeným uživatelem (pokud nebudeš sahat na soubory, stačí vytvořit adresáře). FTP, FTPS, SSH, SFTP. Tady je ale nevýhoda, že skript musí znát přihlašovací údaje.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Menu , prace s textovymi soubory - závěrečná práce , nevim si rady :( — založil honzajs
Práce se soubory — založil Borisek
Práce se soubory — založil hejnallukas
Práce se soubory — založil Polarski
Práce se soubory — založil Mike.Jt
Moderátoři diskuze