[PHP] geen rechten voor fileupload

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Mini-me
  • Registratie: November 1999
  • Niet online
Het file upload script dat ik gebruik is goed, maar ik zit met het probleem dat het script geen schrijfrechten (voor move_uploaded_file(); ) heeft op de opslagplaats op de server.
Ik kan niet via telnet of ssh inloggen omdat ik daar zelf geen rechten toe heb gekregen van de hoster. Dir chownen lukt dus niet..

Hoe los ik dit probleem op? Is er een manier om het anders aan te pakken?

Acties:
  • 0 Henk 'm!

  • MisterData
  • Registratie: September 2001
  • Laatst online: 29-08 20:29
Nee, ik denk dat je even contact moet opnemen met je hoster :) Of via FTP wat proberen te CHMOD'den ofzo :/

[ Voor 27% gewijzigd door MisterData op 22-11-2002 19:36 ]


Acties:
  • 0 Henk 'm!

  • Willem2
  • Registratie: Oktober 2000
  • Laatst online: 05-09 07:32

Willem2

Ω is futile

krijg je een 'open-basedir-restriction' foutmelding of wat?

en nee, ik houd niet van voetbal... :)


Acties:
  • 0 Henk 'm!

  • eXtReMeBiE
  • Registratie: Februari 2002
  • Laatst online: 07-09 13:29
CHMOD 777... ff met je ftp-programmatje alle rechten geven, heel simpel... ff googlen en dan zal je er vast wel wat over vinden.

[edit] of bedoelde je met Chownen CHMODen? in dat geval kan ik je geen zinvol antwoord geven :\
behalve dan, dat je gewoon een aparte directory kan aanmaken, zodat jij de owner bent van die directory... dan hoor je wel gewoon te kunnen CHMODen... :)

[ Voor 50% gewijzigd door eXtReMeBiE op 22-11-2002 20:41 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Als je niet de owner bent, kan het goed zijn dat je apache een chmod succesvol kan laten doen. Effe een kort php-filetje maken met een exec("chmod 777 blaat.php");

Acties:
  • 0 Henk 'm!

  • Mini-me
  • Registratie: November 1999
  • Niet online
De exacte error die ik krijg als ik file 'plattegrond.jpg' wil uploaden:

code:
1
2
3
4
5
6
7
8
Warning: Unable to create 'albums/1/plattegrond.jpg': Permission denied
in /home/username/public_html/admin.php on line 19

Warning: Unable to move '/tmp/phpwRkgRc' to 'albums/1/plattegrond.jpg'
in /home/username/public_html/admin.php on line 19

Warning: chmod failed: No such file or directory 
in /home/username/public_html/admin.php on line 20


Regel 19 en 20 zien er als volgt uit:
PHP:
1
2
move_uploaded_file($_FILES['userfile']['tmp_name'], $filepath);
chmod("$filepath", 0644);
(in $filepath staat in dit geval "albums/1/plattegrond.jpg").

Zou toch gewoon goed moeten zijn :?

Acties:
  • 0 Henk 'm!

  • Mini-me
  • Registratie: November 1999
  • Niet online
eXtReMeBiE schreef op 22 november 2002 @ 20:40:
CHMOD 777... ff met je ftp-programmatje alle rechten geven, heel simpel... ff googlen en dan zal je er vast wel wat over vinden.

[edit] of bedoelde je met Chownen CHMODen? in dat geval kan ik je geen zinvol antwoord geven :\
behalve dan, dat je gewoon een aparte directory kan aanmaken, zodat jij de owner bent van die directory... dan hoor je wel gewoon te kunnen CHMODen... :)
Ik zei niet voor niets chownen ;)
Probleem is dat apache niet zomaar files kan deleten/moven als ze van een user zijn die hier geen rechten toe heeft.

Acties:
  • 0 Henk 'm!

  • eXtReMeBiE
  • Registratie: Februari 2002
  • Laatst online: 07-09 13:29
Heb je nu niet zelf al een deel van je antwoord gegeven dan? Neem contact op met de hoster :) Vraag of je root password mag ^^

Acties:
  • 0 Henk 'm!

Verwijderd

eXtReMeBiE schreef op 22 November 2002 @ 20:40:
CHMOD 777... ff met je ftp-programmatje alle rechten geven, heel simpel... ff googlen en dan zal je er vast wel wat over vinden.

[edit] of bedoelde je met Chownen CHMODen? in dat geval kan ik je geen zinvol antwoord geven :\
behalve dan, dat je gewoon een aparte directory kan aanmaken, zodat jij de owner bent van die directory... dan hoor je wel gewoon te kunnen CHMODen... :)
Idd via ftp moet het zeker lukken... immers binnen je eigen homedir heb je uiteraard alle rechten die nodig zijn.

Acties:
  • 0 Henk 'm!

  • Mini-me
  • Registratie: November 1999
  • Niet online
als ik alle dirs met 777 rechten ga chmodden, dan kan iedereen dus ook gewoon mijn files deleten en dat heb ik liever niet. Lijkt me dus niet echt een handige oplossing...

Acties:
  • 0 Henk 'm!

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07 12:07
hmm je error msg lijkt me eerder een foute directory (php heeft er nogal probs mee verschilt van Unix tot Win32 systememn) zie dus eerst of jouw directories wel kloppen. Als je niet kunt chmod is dat waarschijnlijk omdat de directory waarin je code staat protected is en dat alle files/subdirs die beveiliging overnemen. als je apache gebruikt probeer een .htaccess

Acties:
  • 0 Henk 'm!

  • eXcyle
  • Registratie: Juni 2002
  • Laatst online: 30-08 23:45
(in $filepath staat in dit geval "albums/1/plattegrond.jpg").
moet dat niet gewoon "albums/1/" zijn :?:?

[ Voor 16% gewijzigd door eXcyle op 23-11-2002 12:17 . Reden: Typo king ]


Acties:
  • 0 Henk 'm!

  • Mini-me
  • Registratie: November 1999
  • Niet online
eXcyle schreef op 23 november 2002 @ 12:17:
[...]
moet dat niet gewoon "albums/1/" zijn :?:?
Volgens php.net:
bool move_uploaded_file ( string filename, string destination)

This function checks to ensure that the file designated by filename is a valid upload file (meaning that it was uploaded via PHP's HTTP POST upload mechanism). If the file is valid, it will be moved to the filename given by destination.
Nee dus :)

Ik ben er inmiddels achter dat Apache draait als user Nobody. Deze user heeft dus geen rechten om files in mijn dir te zetten. Bij een site op mijn eigen webserver heb ik dit ooit opgelost door gewoon met chown de hele dir aan de groep nobody toe te kennen, zodat het script wel mag schrijven erin. Nu kan ik dit echter niet doen, omdat ik (zoals eerder genoemd) geen shell access heb.

Hopelijk is het probleem nu duidelijk?

Acties:
  • 0 Henk 'm!

Verwijderd

maak een dir
/tmp
chmod 777 die met je ftp prog of telnet

$File_type=$HTTP_POST_FILES['File']['type'];
move_uploaded_file($HTTP_POST_FILES['File']['tmp_name'], "/var/www/websites/nederland/groepen/***/tmp/tmpfile");
$fd = fopen("/var/www/websites/nederland/groepen/*****/rmp/tmpfile", "r");
$data = addslashes(fread($fd, $HTTP_POST_FILES['File']['size']));
fclose($fd);

zo kan je hem openen.. en dan in database dumpen.. of natuurlijk op je server laten staan met een naam ofzoow..

Acties:
  • 0 Henk 'm!

Verwijderd

dit is allemaal met mijn addressen.. dus je moet zelf maar ff kijken hoet werkt enz..

Acties:
  • 0 Henk 'm!

  • Mini-me
  • Registratie: November 1999
  • Niet online
Dat is geen oplossing, want je blijft hetzelfde probleem houden: apache moet dan de file vanuit de nieuwe tmp dir verplaatsen of kopieren naar mijn homedir en daar heeft hij geen schrijfrechten!

Acties:
  • 0 Henk 'm!

Verwijderd

Het simpelste is toch echt om aan je hosting-provider nobody de juiste rechten te geven.
Pagina: 1