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

    raylib (Wikipedie), tj. multiplatformní open-source knihovna pro vývoj grafických aplikací a her, byla vydána ve verzi 6.0.

    Ladislav Hagara | Komentářů: 0
    včera 18:33 | IT novinky

    Nové verze AI modelů. Společnost OpenAI představila GPT‑5.5. Společnost DeepSeek představila DeepSeek V4.

    Ladislav Hagara | Komentářů: 0
    včera 15:33 | Zajímavý článek

    Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 164 (pdf) a Hello World 29 (pdf).

    Ladislav Hagara | Komentářů: 0
    včera 04:44 | Komunita

    Bylo oznámeno, že webový prohlížeč Opera GX zaměřený na hráče počítačových her je už také na Flathubu and Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    23.4. 23:11 | IT novinky

    Akcionáři americké mediální společnosti Warner Bros. Discovery dnes schválili převzetí firmy konkurentem Paramount Skydance za zhruba 110 miliard dolarů (téměř 2,3 bilionu Kč). Firmy se na spojení dohodly v únoru. O část společnosti Warner Bros. Discovery dříve usilovala rovněž streamovací platforma Netflix, se svou nabídkou však neuspěla. Transakci ještě budou schvalovat regulační orgány, a to nejen ve Spojených státech, ale také

    … více »
    Ladislav Hagara | Komentářů: 0
    23.4. 22:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 26.04 LTS Resolute Raccoon. Přehled novinek v poznámkách k vydání. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 11. vydání s dlouhodobou podporou (LTS).

    Ladislav Hagara | Komentářů: 2
    23.4. 11:55 | Nová verze

    V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Gitea (Wikipedie) byla vydána v nové verzi 1.26.0. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    23.4. 04:44 | Pozvánky

    Ve středu 29. dubna 2026 se v pražské kanceláři SUSE v Karlíně uskuteční 7. Mobile Linux Hackday, komunitní setkání zaměřené na Linux na mobilních zařízeních, kernelový vývoj i uživatelský prostor. Akce proběhne od 10:00 do večerních hodin. Hackday je určen všem zájemcům o praktickou práci s Linuxem na telefonech. Zaměří se na vývoj aplikací v userspace, například bankovní aplikace, zpracování obrazu z kamery nebo práci s NFC, i na úpravy

    … více »
    lkocman | Komentářů: 1
    22.4. 21:55 | Nová verze

    LilyPond (Wikipedie) , tj. multiplatformní svobodný software určený pro sazbu notových zápisů, byl vydán ve verzi 2.26.0. Přehled novinek v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    22.4. 20:33 | Nová verze

    Byla vydána nová verze 11.0.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 237 vývojářů. Provedeno bylo více než 2 500 commitů. Přehled úprav a nových vlastností v seznamu změn.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (8%)
     (2%)
     (13%)
     (31%)
     (3%)
     (7%)
     (2%)
     (15%)
     (25%)
    Celkem 1415 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    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: 536×

    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.