abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:44 | IT novinky

    Společnost Meta na dvoudenní konferenci Meta Connect 2025 představuje své novinky. První den byly představeny nové AI brýle: Ray-Ban Meta (Gen 2), sportovní Oakley Meta Vanguard a především Meta Ray-Ban Display s integrovaným displejem a EMG náramkem pro ovládání.

    Ladislav Hagara | Komentářů: 1
    dnes 01:11 | Nová verze

    Po půl roce vývoje od vydání verze 48 bylo vydáno GNOME 49 s kódovým názvem Brescia (Mastodon). S přehrávačem videí Showtime místo Totemu a prohlížečem dokumentů Papers místo Evince. Podrobný přehled novinek i s náhledy v poznámkách k vydání a v novinkách pro vývojáře.

    Ladislav Hagara | Komentářů: 2
    včera 16:22 | Nová verze

    Open source softwarový stack ROCm (Wikipedie) pro vývoj AI a HPC na GPU od AMD byl vydán ve verzi 7.0.0. Přidána byla podpora AMD Instinct MI355X a MI350X.

    Ladislav Hagara | Komentářů: 0
    včera 15:22 | Nová verze

    Byla vydána nová verze 258 správce systému a služeb systemd (GitHub).

    Ladislav Hagara | Komentářů: 5
    včera 15:11 | Nová verze

    Byla vydána Java 25 / JDK 25. Nových vlastností (JEP - JDK Enhancement Proposal) je 18. Jedná se o LTS verzi.

    Ladislav Hagara | Komentářů: 0
    včera 14:44 | Humor

    Věra Pohlová před 26 lety: „Tyhle aféry každého jenom otravují. Já bych všechny ty internety a počítače zakázala“. Jde o odpověď na anketní otázku deníku Metro vydaného 17. září 1999 na téma zneužití údajů o sporožirových účtech klientů České spořitelny.

    Ladislav Hagara | Komentářů: 5
    včera 11:33 | Zajímavý článek Ladislav Hagara | Komentářů: 0
    16.9. 21:44 | Nová verze

    Byl vydán Mozilla Firefox 143.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Nově se Firefox při ukončování anonymního režimu zeptá, zda chcete smazat stažené soubory. Dialog pro povolení přístupu ke kameře zobrazuje náhled. Obzvláště užitečné při přepínání mezi více kamerami. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 143 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    16.9. 17:22 | Nová verze

    Byla vydána betaverze Fedora Linuxu 43 (ChangeSet), tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 21. října.

    Ladislav Hagara | Komentářů: 0
    16.9. 12:22 | Nová verze

    Multiplatformní emulátor terminálu Ghostty byl vydán ve verzi 1.2 (𝕏, Mastodon). Přehled novinek, vylepšení a nových efektů v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (48%)
     (57%)
     (0%)
     (5%)
     (14%)
     (5%)
     (14%)
     (5%)
     (10%)
    Celkem 21 hlasů
     Komentářů: 2, poslední dnes 09:57
    Rozcestník

    Dotaz: Pristup k souboru vytvorenemu v PHP

    21.3.2014 22:33 Ladislav P
    Pristup k souboru vytvorenemu v PHP
    Přečteno: 517×

    Ahoj, mam problem, ktery se snazim rozlousknout a mozna uz se motam v kruhu, tak bych se chtel zeptat zde. Cil je PHP skriptem na webovem serveru vytvorit soubor v tmp a pomoci ftp ho stahnout do jineho adresare. Soubor vytvorim, ma prava 644, vlastnikem je wwwrun, ale ftp mi tvrdi, ze tam zadny takovy soubor neni. Pri testech jsem dosel zhruba k takovemu zapisu, abych si overil, kde je chyba:

    shell_exec ("touch /tmp/aa.aa");  # je jedno, jakym zpusobem soubor pomoci PHP vytvorim

    shell_exec ("ls -la /tmp"); #v poradku, soubor vidim s wwwrun:www 644

    ftp_get ($conn_id,$local,$remote,FTP_BINARY); #FTP mi tvrdi, ze soubor neexistuje

    shell_exec ("ls -la /tmp"); vse vidim, soubor je tam stale

     

    FTP user ma pristup do /tmp. Co je ale uplne divoky a co mi hlava nebere je to, ze kdyz z bashe soubor v /tmp vytvorim a dam mu vlastnika wwwrun:www a 644, tak vse funguje. OS OpenSuse 13.1 x64, Apache standardni instalace. Kde je zakopanej pes?

     

    Diky,L

    Odpovědi

    22.3.2014 11:10 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Pristup k souboru vytvorenemu v PHP
    Nelze odpovědět, nedostatek informaci např. $local,$remote je skryto, dej víc i s výpisy.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    22.3.2014 13:21 Ladislav P
    Rozbalit Rozbalit vše Re: Pristup k souboru vytvorenemu v PHP

    OK, tady je ten skript, spoustim ho browserem:

    <?php
    $remote="/tmp/xx.xx";
    $local="/dd/aa.aa"; $ftp_server="localhost";
    $ftp_user="lpf";
    $ftp_pass="lacko"; $conn_id=ftp_connect($ftp_server);
    # Soubor $remote2 jsem vytvoril rucne v bashi, zmenil mu vlastnika na wwwrun:www a 644
    $remote2="/tmp/yy.yy";
    #vytvorim soubor $remote
    shell_exec("touch $remote");
    $output=shell_exec("ls -la /tmp");
    echo "<pre>ls -la /tmp $output</pre>"; if (ftp_login($conn_id,$ftp_user,$ftp_pass)) {
    echo "login OK";
        if (ftp_get($conn_id,$local,$remote,FTP_BINARY)) {
    echo "YES";
    }else{
    echo "NO";
        }
    }
    $output=shell_exec("ls -la /tmp");
    echo "<pre> ls -la /tmp $output</pre>";
    ftp_close($conn_id);
    ?>

    A jeho vystup:

    ls -la /tmp total 8
    drwxrwxrwt  2 root   root 4096 Mar 22 12:51 .
    drwxr-xr-x 25 root   root 4096 Mar 18 21:11 ..
    -rw-r--r--  1 wwwrun www     0 Mar 22 12:53 xx.xx
    

    login OK NO

     ls -la /tmp total 8
    drwxrwxrwt  2 root   root 4096 Mar 22 12:51 .
    drwxr-xr-x 25 root   root 4096 Mar 18 21:11 ..
    -rw-r--r--  1 wwwrun www     0 Mar 22 12:53 xx.xx

    Cilize soubor v tempu existuje minimalne do druheho ls. Nicmene ftp (resp. apache error log) tvrdi, ze nikoliv:
    [php5:error] [pid 12253] [client ::1:38763] PHP Warning: ftp_get(): Failed to open file. in /srv/www/htdocs/test.php on line 18
    Vtipny je, ze celou dobu v /tmp existuje soubor remote2 /tmp/yy.yy:
    
    -rw-r--r--  1 wwwrun www       0 Mar 21 21:45 yy.yy
    a prikazy ls ho nevypisi. 
    A kdyz vymenim v ftp_getu $remote za $remote2, tak vse funguje. Urcite to bude nejaka blbost, ale jsem v koncich :)
    
                
    24.3.2014 20:05 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Pristup k souboru vytvorenemu v PHP
    Snad že v PHP /tmp není stejný /tmp, není PHP chroot-otavné?
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    25.3.2014 20:40 Ladislav P
    Rozbalit Rozbalit vše Re: Pristup k souboru vytvorenemu v PHP
    Dik za myslenku, muzes to trochu rozvest? PHPko pouziva systemovy tmp pro http upload.
    25.3.2014 21:09 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Pristup k souboru vytvorenemu v PHP
    Nevím co bych měl rozvést, připadá mi, že pracuješ pokaždé s jiným '/tmp', tedy jediné co mě napadlo je, někde nějaký chroot. No a když se na to tak dívám znovu, tak bych řekl celkem jistě, že ftp-ko bude určitě chroot-ované, to přece obvykle i neobvykle nemá přístup na '/'.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    25.3.2014 21:52 Ladislav P
    Rozbalit Rozbalit vše Re: Pristup k souboru vytvorenemu v PHP
    Nene, to ftpko je moje a ma (a ted neresme jak moc je to spatne) pristup k /, cilize do systemoveho /tmp ma pristup. A i pisu, ze kdyz soubor vytvorim rucne s uvedenymi atributy v /tmp tak ho ftpko vidi. V pripade, ze tamtez vytvorim soubor pomoci php pres apache, tak ho nevidi.
    26.3.2014 09:02 GeorgeWH | skóre: 42
    Rozbalit Rozbalit vše Re: Pristup k souboru vytvorenemu v PHP
    vytvor ten subor cez php a ptom ho pohladaj na disku. ako uz bolo spomenute, 100% nebude v /tmp ...
    25.3.2014 05:49 Matlák
    Rozbalit Rozbalit vše Re: Pristup k souboru vytvorenemu v PHP
    OT: Nebylo by lepší ten soubor vytvořit v tmp pod adresářem, ke kterému má přístup apache a stáhnout ho odtamtud standardně přes HTTP?
    25.3.2014 05:53 Matlák
    Rozbalit Rozbalit vše Re: Pristup k souboru vytvorenemu v PHP
    A ještě mě napadá - zkoušels jsi LIST nad tím ftp (třeba v nějakém klientu, například ftp ? :-))
    25.3.2014 20:46 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Pristup k souboru vytvorenemu v PHP
    Promiň, ale stále mi není jasné: Proč do toho motáš FTP? Je tam nutné?
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    25.3.2014 21:59 Ladislav P
    Rozbalit Rozbalit vše Re: Pristup k souboru vytvorenemu v PHP
    Prominu :). Je tam nutny. Skoro si myslim, ze tim vypisem toho skriptu jsem to tady trochu zneprehlednil. V zasade jde o to, jak to, ze se prave to FTPko chova jinak k souboru vytvorenemu pomoci php/apache a jinak k souboru vytvorenemu rucne na to same misto se stejnymi vlastnostmi (vlastnik, prava). A protoze to cele zni jako totalni nesmysl, tak za tim vsim bude nejaka blbost, kterou uspesne prehlizim uz docela dlouho.
    25.3.2014 22:16 Kit | skóre: 46 | Brno
    Rozbalit Rozbalit vše Re: Pristup k souboru vytvorenemu v PHP
    Jde mi o to, proč ten soubor nestáhneš přes HTTP. Tím by spousta problémů zmizela.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    2.4.2014 19:59 Ladislav P
    Rozbalit Rozbalit vše Re: Pristup k souboru vytvorenemu v PHP
    Hmmm, tak jste meli pravdu s tim, ze PHP resp. Apache pouziva vlastni tmp, aspon teda OpenSuse 13.1. Pouziva tzv. privatni tmp, ve vysledku PHP pak pouziva /tmp/systemd-private-???????/tmp/. Nevite nekdo, jak z Apache dostat jmeno tohoto tmp adresare pomoci PHPka? To jmeno se po kazdem restartu Apache meni. Neco jako sys_get_temp_dir pochopitelne nefunguje:(. Dik,L.
    2.4.2014 20:26 MadCatX
    Rozbalit Rozbalit vše Re: Pristup k souboru vytvorenemu v PHP
    Překážky, na které narážíte naznačují, že ten problém řešíte nesprávným způsobem. Proč potřebujete webovou aplikací vytvořit dočasný soubor přístupný přes FTP?
    2.4.2014 20:50 Ladislav P
    Rozbalit Rozbalit vše Re: Pristup k souboru vytvorenemu v PHP
    Ale vzdyt o to vubec nejde. Nyni preci tu otazku mohu polozit takto: Jak zjistim pomoci PHP, jaky tmp adresar je pouzivan webovym serverem v ramci celeho filesystem? Lze to vubec? A ocenuji kazdeho, kdo ma cas a chut odpovedet na otazku. L.
    2.4.2014 21:31 MadCatX
    Rozbalit Rozbalit vše Re: Pristup k souboru vytvorenemu v PHP
    Úplně spolehlivě to IMHO zjistit nelze. Ten webový server může běžet třeba v chrootu.
    2.4.2014 21:35 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Pristup k souboru vytvorenemu v PHP
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    AraxoN avatar 3.4.2014 10:22 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Pristup k souboru vytvorenemu v PHP
    Ja len doplním pre toho kto otázku položil:

    Odpoveď je síce správna, ale otázka nie. Tieto funkcie by Ti boli platné ak by si používal tmpfile(). Ty ale ten súbor vytváraš cez shell_exec() a cestu si tam dávaš napevno. To znamená, že Ti to beží v chroot-e. Takže si buď vypneš chroot, čo neodporúčam, pretože tam je kvôli bezpečnosti a v Tvojom prípade je asi dobre, že tam je. Alebo musíš zmeniť logiku tej svojej aplikácie.
    3.4.2014 11:46 Lucius
    Rozbalit Rozbalit vše Re: Pristup k souboru vytvorenemu v PHP

    Založit nové vláknoNahoru

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

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.