abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    11.5. 18:22 | Nová verze

    Byla vydána verze 0.2.0 v Rustu napsaného frameworku Pingora pro vytváření rychlých, spolehlivých a programovatelných síťových systémů. Společnost Cloudflare jej letos v únoru uvolnila pod licencí Apache 2.0.

    Ladislav Hagara | Komentářů: 0
    10.5. 19:11 | Nová verze

    Open source RDP (Remote Desktop Protocol) server xrdp (Wikipedie) byl vydán ve verzi 0.10.0. Z novinek je vypíchnuta podpora GFX (Graphic Pipeline Extension). Nová větev řeší také několik bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 13
    10.5. 04:11 | Nová verze

    Rocky Linux byl vydán v nové stabilní verzi 9.4. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    9.5. 22:22 | Bezpečnostní upozornění

    Dellu byla odcizena databáze zákazníků (jméno, adresa, seznam zakoupených produktů) [Customer Care, Bleeping Computer].

    Ladislav Hagara | Komentářů: 22
    9.5. 21:11 | Zajímavý článek

    V lednu byl otevřen editor kódů Zed od autorů editoru Atom a Tree-sitter. Tenkrát běžel pouze na macOS. Byl napevno svázán s Metalem. Situace se ale postupně mění. V aktuálním příspěvku Kdy Zed na Linuxu? na blogu Zedu vývojáři popisují aktuální stav. Blíží se alfa verze.

    Ladislav Hagara | Komentářů: 53
    9.5. 14:33 | Pozvánky

    O víkendu 11. a 12. května lze navštívit Maker Faire Prague, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    8.5. 21:55 | Nová verze

    Byl vydán Fedora Asahi Remix 40, tj. linuxová distribuce pro Apple Silicon vycházející z Fedora Linuxu 40.

    Ladislav Hagara | Komentářů: 20
    8.5. 20:22 | IT novinky

    Představena byla služba Raspberry Pi Connect usnadňující vzdálený grafický přístup k vašim Raspberry Pi z webového prohlížeče. Odkudkoli. Zdarma. Zatím v beta verzi. Detaily v dokumentaci.

    Ladislav Hagara | Komentářů: 7
    8.5. 12:55 | Nová verze

    Byla vydána verze R14.1.2 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.

    JZD | Komentářů: 0
    7.5. 18:55 | IT novinky

    Dnešním dnem lze již také v Česku nakupovat na Google Store (telefony a sluchátka Google Pixel).

    Ladislav Hagara | Komentářů: 10
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (69%)
     (7%)
     (11%)
     (13%)
    Celkem 192 hlasů
     Komentářů: 11, poslední 10.5. 18:00
    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: 506×

    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: 45 | 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: 45 | 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.