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 00:55 | Nová verze

Byla vydána verze 2.12.0 QEMU (Wikipedie). Přispělo 204 vývojářů. Provedeno bylo více než 2 700 commitů. Přehled úprav a nových vlastností v seznamu změn. Řešeny jsou také bezpečnostní chyby Meltdown a Spectre.

Ladislav Hagara | Komentářů: 0
dnes 00:33 | Komunita

Google zveřejnil seznam 1 264 studentů přijatých do letošního Google Summer of Code. Přehled projektů, studentů, 212 organizací a mentorů je k dispozici na stránkách GSoC.

Ladislav Hagara | Komentářů: 0
včera 23:55 | Nová verze

Oracle vydal verzi 1.0 univerzálního virtuálního stroje GraalVM, který umožňuje běh programů napsaných v jazycích založených na JVM, JavaScript, LLVM bitcode a experimentálně Ruby, R a Python.

razor | Komentářů: 1
včera 01:22 | Zajímavý článek

Julia Evans pomocí svých kreslených obrázků proniká do Linuxu a informačních technologií. Vedle ucelených zinů publikuje také jednotlivé kreslené obrázky (RSS).

Ladislav Hagara | Komentářů: 5
23.4. 13:22 | Zajímavý software

Jordi Sanfeliu vydal verzi 1.0.0 svého unixového jádra Fiwix (Wikipedie) určeného také pro výuku operačních systémů. Dle článku na OSNews na něm začal pracovat již před více než dvaceti lety. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT. Stáhnout a vyzkoušet lze živou disketu nebo CD s GNU/Fiwixem.

Ladislav Hagara | Komentářů: 5
23.4. 06:00 | Nová verze

Byla vydána nová verze 10.7 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab (Wikipedie). Představení nových vlastností v příspěvku na blogu. Vývojáři GitLabu zdůrazňují Web IDE (YouTube) a SAST (Static Application Security Testing) pro Go a C/C++.

Ladislav Hagara | Komentářů: 5
22.4. 14:00 | Zajímavý článek

David Revoy, autor open source webového komiksu Pepper&Carrot nebo portrétu GNU/Linuxu, zveřejnil na svém blogu recenzi notebooku Librem 13 od společnosti Purism. Používá jej již sedm měsíců a s ním i jako umělec spokojen. Potřebu francouzské AZERTY klávesnice vyřešil přelepkami. Na displej se podíval kalibrační sondou, barvy vyladil pomocí open source softwaru DisplayCAL, v aplikaci Inkscape nastavil zvětšování na 170 % aby 1 cm v Inkscapu byl 1 cm v reálu. Webovou kameru, mikrofon, Wi-Fi a Bluetooth lze na Librem 13 hardwarově vypnout.

Ladislav Hagara | Komentářů: 7
21.4. 23:44 | Komunita

Několik posledních verzí GNOME Shellu obsahuje chybu způsobující memory leak (únik paměti). Viz například videozáznamy verzí 3.26 nebo 3.28. Nalezení chyby #64 a její opravě se věnuje Georges Basile Stavracas Neto v příspěvku na svém blogu [reddit].

Ladislav Hagara | Komentářů: 2
21.4. 10:33 | Komunita

V pondělí měl na YouTube online premiéru otevřený krátký 2D film Hero vytvořený v 3D softwaru Blender. Cílem stejnojmenného projektu Hero je vylepšit nástroj Grease Pencil (tužka) v Blenderu 2.8.

Ladislav Hagara | Komentářů: 4
20.4. 23:22 | Nová verze

Byla vydána verze 4.0 kolekce svobodného softwaru umožňujícího nahrávání, konverzi a streamovaní digitálního zvuku a obrazu FFmpeg (Wikipedie). Přehled novinek v Changelogu (GitHub).

Ladislav Hagara | Komentářů: 0
Používáte na serverech port knocking?
 (2%)
 (7%)
 (46%)
 (27%)
 (18%)
Celkem 370 hlasů
 Komentářů: 29, poslední 5.4. 12:25
    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: 484×

    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: 36
    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: 41 | 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: 41 | 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: 45 | 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.
    A fine is a tax for doing wrong. A tax is a fine for doing well.
    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.