ugrás a tartalomhoz

Hogyan férhetek hozzá php-ből egy pendrive-hoz saját gépen?

jeti · 2012. Feb. 11. (Szo), 14.35
Sziasztok!

Nem sikerül hozzáférnem a pedrive-n lévő fájlokhoz PHP alól. (Ubuntut használok.) Ha beírom a csatolási pont címét a böngészőbe, akkor látom a tartalmát, de ugyanezt PHP-ből már nem tudom megnyitni. A mappa jogosultsága rwx a tulajnak, a többieknek nincsen semmilyen joga. Ha MC-ben a haladó chown-al átállítom (777), akkor sem változik semmi, még a mappa jogosultság sem.
Az etc/fstab-ban nincs megemlítve ez az usb-s csatlakozási pont.
A php melyik felhasználói névvel fut? A print(exec('whoami',$kimenet)); print_r($kimenet); parancsokra csak egy üres tömböt kapok.
Mi lehet a hiba? Hogy tudok hozzáférni a fájlokhoz?
Az opendir() paraccsal ki tudom listázni a /home/user mappát, de a /media-t már nem. Sőt már a /home mappát sem.
Az exec() paranccsal is próbálkoztam már. Ez majd ahhoz fog kelleni, hogy át tudjak helyezni fájlokat.
 
1

Ha Apache-on keresztül hívod

Hidvégi Gábor · 2012. Feb. 11. (Szo), 15.44
Ha Apache-on keresztül hívod meg a php-t, akkor www-data, www vagy nobody szokott általában lenni a felhasználó, amivel a fájlrendszert eléred.
2

és ahova az usb-t felcsatolod

Karvaly84 · 2012. Feb. 11. (Szo), 23.54
és ahova az usb-t felcsatolod oda úgy jusson el at apache, hogy közben a felmenő mappákon is legyen olvasási joga. Én Dropbox-al szívtam ez miatt egyszer.
3

Továbbra sem sikerül; biztonság?

jeti · 2012. Feb. 12. (V), 02.43
Apache-on keresztül hívom meg a php-t. Megtaláltam, www-data felhasználóként van jelen. Hozzáadtam az user csoportjához, de sajnos továbbra sem férek hozzá a mappákhoz.

A csatolási pont /media/. Milyen jog vagy csoport tagság kell ahhoz, hogy hozzáférjek a /media mappa tartalmához?

Ha növelem az apache felhasználó jogait, akkor az jelent valamilyen többlet biztonsági kockázatot egy otthoni gépen?
4

Esetleg a /media könyvtárra

Hidvégi Gábor · 2012. Feb. 12. (V), 09.06
Esetleg a /media könyvtárra hozz létre egy symlinket a /home/user-ben.
5

Nem működik

jeti · 2012. Feb. 12. (V), 13.08
Nem működik a szimbolikus linkes megoldás sem.

Megnéztem a jogosultságokat:
/media
- tulaj: root rwx
- csoport: root r-x
- mások: r-x
/media/cs_meghajto - Ezek nem állíthatók át.
- tulaj: user rwx
- csoport: user ---
- mások: ---

Korábban betettem a www-data felhasználót az user csoportba és most legutóbb a root csoportba is, de ennek ellenére nem működik.
Ez utóbbi csökkenti a gép biztonságát?
6

Csökkenti

Hidvégi Gábor · 2012. Feb. 12. (V), 13.35
Vedd ki a www-datát abból a két csoportból, különben olyan fájlokat is lehet írni-olvasni php-ból, amit nem szeretnél.
7

mount

Poetro · 2012. Feb. 12. (V), 13.41
Szerintem nézd meg a mount parancs man-ját. Be lehet mountolni egy meghajtót egy másik felhasználóval is, és akkor hozzá tudsz férni az azon levő adatokhoz is.
8

Így sem megy...

jeti · 2012. Feb. 12. (V), 14.38
Így sem megy. Kivettem a két fölösleges csoportből a felhasználót.
(sudo mount /dev/sdb1 /media/pendrive -o uid=33
A csatolás jó volt.)
9

Hibaüzenet

janoszen · 2012. Feb. 12. (V), 23.04
Kapcsold be a noticeokat és nézd meg, mi a konkrét hibaüzenet. A vaktában lövöldözés még sosem volt túl hatékony. Esetleg ismerkedj meg a strace paranccsal.
10

Nincs hibaüzenet

jeti · 2012. Feb. 18. (Szo), 12.36
Megnéztem, be volt állítva a hibaüzenetek megjelenítése, de nem kapok semmilyen hibaüzenetet.

display_errors=On
display_startup_errors=On
error_reporting=E_ALL & ~E_NOTICE
html_errors=On
log_errors=On

Még a következő kettőt átállítva sem kapok hibaüzenetet.
track_errors = On
error_reporting=E_ALL & ~E_STRICT

Hogyan tovább?
11

Ha jól sejtem, van root jogod

H.Z. v2 · 2012. Feb. 18. (Szo), 13.28
Ha jól sejtem, van root jogod a gépen.
root userből:
su - www-data
Ha sikerül, akkor átmész a problémás könyvtárba és megpróbálod megnyitni azt a fájlt, amit PHP-ből nem tudsz.
Így biztosan kapsz hibaüzenetet vagy a cd-re vagy a cat-re.
12

cd-s hibaüzenetek

jeti · 2012. Feb. 18. (Szo), 14.09
Igen, root jogom van.
A sudo su www-data parancs hatására csak egy $ jel jelent meg a terminálban. (A su www-data nem sikerült, mert nem tudom a www-data jelszavát.) Ezek nem tudom, hogy normálisak-e.

Elkezdtem lépegetni a cd-vel, a /media és a /media/pendrive is sikerült. Felcsatlakoztattam a pendrivet a szokásos módon (egyszerűen csak bedugtam) és a cd 0000-s0s0 parancsra azt kaptam, hogy:
cd: 16: can't cd to 0000-s0s0
Majd felcsatlakoztatattam sudo mount /dev/sdb1 /media/pendrive -o uid=33 paranccsal, cd pendrive erre a cd: 18: can't cd to pendrive üzenetet kaptam.
Ez mit jelent? A man cd parancsra, No manual entry for cd...
13

cd

Poetro · 2012. Feb. 18. (Szo), 14.13
A cd az a change directory, azaz könyvtárváltás. Ha nem tudsz belépni abba a könyvtárba, akkor ott valami gondok vannak, ezért nem is fog menni PHP-ból. Valószínűleg valami jogosultsági vagy hardveres / szoftveres probléma van.
14

Ha van gmail accountod, akkor

H.Z. v2 · 2012. Feb. 18. (Szo), 14.42
Ha van gmail accountod, akkor keress meg privátban, a gmail chat-en egy picivel egyszerűbb és gyorsabb lenne.
15

Nincsen

jeti · 2012. Feb. 18. (Szo), 18.07
Előre is köszönöm a segítséget, de nincsen gmail fiókom. Nagyon bonyolult a megoldás?
16

Nem t'om, mi a megoldás, csak

H.Z. v2 · 2012. Feb. 18. (Szo), 18.34
Nem t'om, mi a megoldás, csak itt a fórumon kissé lassú a kommunikáció.
17

Az eszébe jutott-e már

deejayy · 2012. Feb. 20. (H), 13.57
Az eszébe jutott-e már valakinek, hogy a php nem lát kifele a document rootból?
18

Miért ne látna?

H.Z. v2 · 2012. Feb. 20. (H), 13.59
Akkor hogy fér hozzá pl. a documentroot-on kívülre pakolt konfig fájlokhoz, include-olt alkatrészekhez és hasonlókhoz?
19

Engem már szivatott meg

deejayy · 2012. Feb. 20. (H), 14.05
Engem már szivatott meg hoszting pont ilyennel. Én is kívül tároltam az egész appot a docrooton kívül, aztán lepattintott, hogy oldjam meg rewrite-tal, mert a többi 100 domainre is ez a policy.
20

Ja, bocs, akkor

H.Z. v2 · 2012. Feb. 20. (H), 14.15
Ja, bocs, akkor félreértettelek.