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í
×
včera 16:00 | Nová verze

Byl vydán Mozilla Firefox 51.0. Z novinek lze upozornit například na upozorňování na přihlašování přes nešifrované spojení (HTTP), podporu pro přehrávání bezeztrátového formátu FLAC nebo podporu WebGL 2. Podrobné informace v poznámkách k vydání a na stránce věnované vývojářům. Řešeny jsou také bezpečnostní chyby.

Ladislav Hagara | Komentářů: 1
23.1. 17:25 | IT novinky

Do prodeje (Farnell) se dostal jednodeskový počítač Tinker Board (unboxing). Jedná se o konkurenci Raspberry Pi 3 od společnosti Asus. Porovnání (jpg) těchto počítačů například na CNXSoft. Cena Tinker Boardu je 55 £.

Ladislav Hagara | Komentářů: 15
23.1. 14:44 | Zajímavý projekt

Byla zveřejněna pravidla hackerské soutěže Pwn2Own 2017, jež proběhne od 15. do 17. března v rámci bezpečnostní konference CanSecWes ve Vancouveru. Soutěžit se bude o více než milion dolarů v pěti kategoriích. Letos se bude útočit i na Ubuntu. Jedná se již o 10. ročník této soutěže.

Ladislav Hagara | Komentářů: 2
23.1. 13:33 | Nová verze

Po sedmi měsících vývoje od vydání verze 5.7 byla vydána verze 5.8 (YouTube) toolkitu Qt. Z novinek lze zmínit například Qt Lite pro vestavěná zařízení. Nově jsou plně podporovány moduly Qt Wayland Compositor (YouTube) a Qt SCXML (YouTube). Současně byla vydána verze 4.2.1 integrovaného vývojového prostředí (IDE) Qt Creator.

Ladislav Hagara | Komentářů: 1
23.1. 11:52 | Pozvánky

Lednový Prague Containers Meetup se koná ve čtvrtek 26. ledna 2017 od 18:00 v Apiary, Pernerova 49, Praha 8. Přijďte se podívat na přednášky o Enterprise Kubernetes a Jenkins as a code.

little-drunk-jesus | Komentářů: 0
23.1. 11:40 | Pozvánky

Program letošního ročníku konference Prague PostgreSQL Developer Days, která se koná již 15. a 16. února 2017 na ČVUT FIT, Thákurova 9, Praha 6, byl dnes zveřejněn. Najdete ho na stránkách konference včetně anotací přednášek a školení. Registrace na konferenci bude otevřena zítra (24. ledna) v brzkých odpoledních hodinách.

TomasVondra | Komentářů: 0
22.1. 02:20 | Zajímavý článek

David Revoy, autor open source webového komiksu Pepper&Carrot nebo portrétu GNU/Linuxu, upozorňuje na svém blogu, že nový Inkscape 0.92 rozbíjí dokumenty vytvořené v předchozích verzích Inkscape. Problém by měl být vyřešen v Inkscape 0.92.2 [reddit].

Ladislav Hagara | Komentářů: 0
22.1. 02:02 | Komunita

Øyvind Kolås, hlavní vývojář grafických knihoven GEGL a babl, které využívá grafický program GIMP, žádá o podporu na Patreonu. Díky ní bude moci pracovat na vývoji na plný úvazek. Milník 1000 $, který by stačil na holé přežití, se již téměř podařilo vybrat, dalším cílem je dosažení 2500 $, které mu umožní běžně fungovat ve společnosti.

xkomczax | Komentářů: 12
21.1. 23:54 | Pozvánky

DevConf.cz 2017, již devátý ročník jedné z největších akcí zaměřených na Linux a open source ve střední Evropě, proběhne od pátku 27. ledna do neděle 29. ledna v prostorách Fakulty informačních technologií Vysokého učení technického v Brně. Na programu je celá řada zajímavých přednášek a workshopů. Letos je povinná registrace.

Ladislav Hagara | Komentářů: 0
21.1. 22:11 | Nová verze

Byla vydána verze 1.0.0 emulátoru terminálu Terminology postaveného nad EFL (Enlightenment Foundation Libraries). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (12%)
 (2%)
 (72%)
 (3%)
 (11%)
Celkem 395 hlasů
 Komentářů: 39, poslední včera 19:30
Rozcestník
Reklama

Dotaz: Pristup k souboru vytvorenemu v PHP

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

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: 35
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: 37 | 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: 37 | 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.