[PHP] owner bij Mkdir

Pagina: 1
Acties:
  • 244 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • lennartkocken
  • Registratie: September 2004
  • Laatst online: 20-09 20:35
Ik heb een stuk PHP geschreven:

code:
1
2
3
4
mkdir("uploads/" . $_SESSION['gallery'], 0777);
mkdir("thumbs/" .$_SESSION['gallery'], 0777);
move_uploaded_file($_FILES['userfile']['tmp_name'],  $filename);
mysqL_query("INSERT INTO `pics` (`thumb`, `file`, `gallery_id`) VALUES('" . thumb($filename) . "', '$filename', '" . $_SESSION['galleryid'] . "');") or die(mysql_error());


De map voor mkdir wordt gemaakt, krijgt de 777 rechten, en heeft als owner Apache. Als ik daarna iets naar die map wil uploaden gebeurt er niets, omdat de owner apache is en niet de gebruiker van de server. Chown() staat uit op de server, dus hoe zorg ik ervoor dat ik toch kan uploaden?

Goedkoopste hardware


Acties:
  • 0 Henk 'm!

  • djiwie
  • Registratie: Februari 2002
  • Laatst online: 17-09 16:35

djiwie

Wie?

Als 'apache' de eigenaar is van de map omdat de map onder die gebruikersnaam is aangemaakt, moet het bestand dat je wilt uploaden ook onder die gebruikersnaam weggeschreven zijn. In dat geval hoeft de directory trouwens ook niet world writeable te zijn.
Klopt $filename wel?

Acties:
  • 0 Henk 'm!

Verwijderd

Kijk hier eens

Als je dat allemaal hebt gelezen kom je er zeker uit..

Acties:
  • 0 Henk 'm!

  • lennartkocken
  • Registratie: September 2004
  • Laatst online: 20-09 20:35
Ja die klopt, als ik in Directadmin de rechten reset werkt het gewoon. Dat is alleen niet de bedoeling, omdat ik straks geen toegang meer heb tot de server, en de klant gaat niet al zijn mappen handmatig aanpassen.

Goedkoopste hardware


Acties:
  • 0 Henk 'm!

  • lennartkocken
  • Registratie: September 2004
  • Laatst online: 20-09 20:35
Verwijderd schreef op maandag 14 januari 2008 @ 20:45:
Kijk hier eens

Als je dat allemaal hebt gelezen kom je er zeker uit..
Dat is niet mogelijk, aangezien PHP 4.4.4 is geinstalleerd op de server.

Goedkoopste hardware


Acties:
  • 0 Henk 'm!

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 20-09 18:24

TheBorg

Resistance is futile.

lennartkocken schreef op maandag 14 januari 2008 @ 20:35:Als ik daarna iets naar die map wil uploaden gebeurt er niets, omdat de owner apache is en niet de gebruiker van de server.
Zolang je upload met een PHP script is de owner alsnog apache. Ik denk dat er iets anders misgaat.

Acties:
  • 0 Henk 'm!

  • djiwie
  • Registratie: Februari 2002
  • Laatst online: 17-09 16:35

djiwie

Wie?

Als de map al 777 rechten heeft (world writeable) zou het trouwens toch uberhaupt al moeten lukken om een bestand weg te schrijven in die map? :?

Acties:
  • 0 Henk 'm!

  • lennartkocken
  • Registratie: September 2004
  • Laatst online: 20-09 20:35
TheBorg schreef op maandag 14 januari 2008 @ 21:03:
[...]

Zolang je upload met een PHP script is de owner alsnog apache. Ik denk dat er iets anders misgaat.
Als ik de gebruiker Apache verwijder en de juiste gebruiker neerzet, en het script werkt wel... dan is er toch zeker niets mis met het script maar met de server?

Anyway, ik heb het opgelost door dán maar niet in te delen in mappen. Lekker vies, maar als het zo wel werkt... :(

[ Voor 13% gewijzigd door lennartkocken op 14-01-2008 21:07 ]

Goedkoopste hardware


Acties:
  • 0 Henk 'm!

  • TheBorg
  • Registratie: November 2002
  • Laatst online: 20-09 18:24

TheBorg

Resistance is futile.

Soms negeert Apache de rechten die je opgeeft (geen idee wat de voorwaarden hiervoor zijn).

-edit-
We hebben het hier toch wel over een Linux doos?

[ Voor 24% gewijzigd door TheBorg op 14-01-2008 21:10 ]


Acties:
  • 0 Henk 'm!

  • djiwie
  • Registratie: Februari 2002
  • Laatst online: 17-09 16:35

djiwie

Wie?

Wat is de user/group volgens phpinfo()? Dat zou namelijk de gebruiker moeten zijn die Apache gebruikt om je bestand weg te schrijven.

Acties:
  • 0 Henk 'm!

Verwijderd

djiwie schreef op maandag 14 januari 2008 @ 21:11:
Wat is de user/group volgens phpinfo()? Dat zou namelijk de gebruiker moeten zijn die Apache gebruikt om je bestand weg te schrijven.
En daar zit bij een standaard DA installatie het probleem. Apache draait niet onder het uid/gid van de klant. Er zijn methoden waarbij PHP wel wordt gedraaid onder het juiste uid/gid en dan is alles netjes. Echter weten de meeste hosts niet dat dit kan en/of hoe het moet.

Acties:
  • 0 Henk 'm!

  • AW_Bos
  • Registratie: April 2002
  • Laatst online: 11:52

AW_Bos

Liefhebber van nostalgie... 🕰️

Verwijderd schreef op maandag 14 januari 2008 @ 23:01:
[...]

En daar zit bij een standaard DA installatie het probleem. Apache draait niet onder het uid/gid van de klant. Er zijn methoden waarbij PHP wel wordt gedraaid onder het juiste uid/gid en dan is alles netjes. Echter weten de meeste hosts niet dat dit kan en/of hoe het moet.
Ik meen dat met suPHP dit wel goed zit ;).
Of vermoedelijk een goede instelling van de rechten.

Telecommunicatie van vroeger
🚅Alles over spoor en treintjes


Acties:
  • 0 Henk 'm!

  • djiwie
  • Registratie: Februari 2002
  • Laatst online: 17-09 16:35

djiwie

Wie?

Verwijderd schreef op maandag 14 januari 2008 @ 23:01:
[...]

En daar zit bij een standaard DA installatie het probleem. Apache draait niet onder het uid/gid van de klant. Er zijn methoden waarbij PHP wel wordt gedraaid onder het juiste uid/gid en dan is alles netjes. Echter weten de meeste hosts niet dat dit kan en/of hoe het moet.
Maar als de map kennelijk aangemaakt is door Apache (met als eigenaar de user die de httpd draait) moet er in die _aangemaakte_ map wel bestanden door de httpd weggeschreven kunnen worden, en dit lukt niet volgens TS.

Acties:
  • 0 Henk 'm!

  • rewind.
  • Registratie: Oktober 2001
  • Laatst online: 17-09 11:00
ik had precies hetzelfde.. safe-mode uit gezet en het was klaar..
Pagina: 1