[php] copy(): SAFE MODE Restriction in effect.

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

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb bezig met een php script waarmee ik bestanden naar de server kan uploaden.
Opzich stelt dat script helemaal niks voor, ik loop alleen tegen het probleem aan dat php in safe mode draait op de server.
Nu krijg ik dus deze melding:
code:
1
2
[error] PHP Warning:  copy(): SAFE MODE Restriction in effect.  
The script whose uid is 0 is not allowed to access /upload owned by uid 1000 in /www/project/documentmanager.php on line 25

Tijdens het uploaden schrijft php naar een temp directory die precies dezelfde eigenaar en rechten heeft. (in mijn ogen vreemd :?)

Heeft iemand een idee hoe ik dit op kan lossen zonder safe mode uit te zetten ?

De code:
PHP:
1
copy($_FILES['file']['tmp_name'], "/upload/".$_FILES['file']['name']);

[ Voor 11% gewijzigd door Verwijderd op 19-09-2003 14:50 ]


Acties:
  • 0 Henk 'm!

  • Kippenijzer
  • Registratie: Juni 2001
  • Laatst online: 26-08 09:08

Kippenijzer

McFallafel, nu met paardevlees

Script with UID 0... Tja, dan zou ik idd ook safe mode zeker activeren... PHP scripts die draaien als root ???

Acties:
  • 0 Henk 'm!

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 16-08 17:16

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Kippenijzer schreef op 19 september 2003 @ 14:50:
Script with UID 0... Tja, dan zou ik idd ook safe mode zeker activeren... PHP scripts die draaien als root ???
Die draai ik dus niet als root. (Duh ;))
code:
1
apache   0.0  3.7 11828 9724 ?        S    14:25   0:00 [httpd]

Maar dat uid 0 was me eigenlijk nog helemaal niet opgevallen. 8)7
Snap eigenlijk ook niet helemaal waarom hij dat denkt. :/
Dat geeft dezelfde fout.

[ Voor 34% gewijzigd door Verwijderd op 19-09-2003 14:59 ]


Acties:
  • 0 Henk 'm!

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 16-08 17:16
Verwijderd schreef op 19 September 2003 @ 14:53:
[...]
Dat geeft dezelfde fout.
Zou user apache wel schrijfrechten hebben in /upload?

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
bigtree schreef op 19 September 2003 @ 15:00:
[...]
Zou user apache wel schrijfrechten hebben in /upload?
Ik zou denken van wel.
code:
1
drwxr-xr-x    2 apache   apache       4096 Sep 19 14:17 upload

Acties:
  • 0 Henk 'm!

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 16-08 17:16
Heb je het commentaar wel gelezen in de link die ik je gaf?
If you were thinking, like me, that move_uploaded_file() operates on uploaded files even if they are outside your basedir (as set in the open_basedir directive) - you are *wrong*.

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
bigtree schreef op 19 September 2003 @ 15:02:
Heb je het commentaar wel gelezen in de link die ik je gaf?
[...]
Jup, die heb ik gelezen.
De directory stond al binnen de basedir.

Acties:
  • 0 Henk 'm!

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 16-08 17:16
Mag je hem wel moven naar een directory binnen de webspace?

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Acties:
  • 0 Henk 'm!

  • ripperke
  • Registratie: Augustus 2003
  • Laatst online: 19-08 16:06

ripperke

w00t!

damn dude, met drwxr-xr-x mag enkel owner in die map schrijven chmodden die handel naar 777 ofte wel drwxrwxrwx

If TCP/IP handshaking was less formal, perhaps SYN/ACK would be YO/WASSUP


Acties:
  • 0 Henk 'm!

  • _-= Erikje =-_
  • Registratie: Maart 2000
  • Laatst online: 15-09 14:23
dat zal niet helpen omdat php ook naar de bestandseigenaar kijkt

Acties:
  • 0 Henk 'm!

  • ripperke
  • Registratie: Augustus 2003
  • Laatst online: 19-08 16:06

ripperke

w00t!

juist daarvoor dient dus die chmod, juist zodat ook andere users dan de eigenaar kunnen schrijven *doh*

If TCP/IP handshaking was less formal, perhaps SYN/ACK would be YO/WASSUP


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

ripperke schreef op 19 September 2003 @ 18:31:
juist daarvoor dient dus die chmod, juist zodat ook andere users dan de eigenaar kunnen schrijven *doh*
Wie is de eigenaar van het Apache process (dus de PHP executable)? En wie is de eigenaar van die map... goh; precies hetzelfde! Die rechten zijn dus correct. :>

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • ripperke
  • Registratie: Augustus 2003
  • Laatst online: 19-08 16:06

ripperke

w00t!

Spider.007 schreef op 19 September 2003 @ 18:41:
[...]


Wie is de eigenaar van het Apache process (dus de PHP executable)? En wie is de eigenaar van die map... goh; precies hetzelfde! Die rechten zijn dus correct. :>
smartftp :

MKD testmap
257 "/home/ripperke/testmap" - Directory successfully created.

ssh :
ripperke:/home/ripperke# ls -l |grep testmap
drwxr-xr-x 2 ripperke ripperke 4096 Sep 19 19:10 testmap

goh raar toch he ? ;)

[ Voor 6% gewijzigd door ripperke op 19-09-2003 19:20 ]

If TCP/IP handshaking was less formal, perhaps SYN/ACK would be YO/WASSUP


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

ripperke schreef op 19 September 2003 @ 19:14:
[...]


smartftp :

MKD testmap
257 "/home/ripperke/testmap" - Directory successfully created.

ssh :
ripperke:/home/ripperke# ls -l |grep testmap
drwxr-xr-x 2 ripperke ripperke 4096 Sep 19 19:10 testmap

goh raar toch he ? ;)
Nee, ik vindt het niet raar dat als je via smartFTP een map aanmaakt en dan via SSH inlogt dat de map dan is aangemaakt onder jouw username :? Het punt wat ik maakte was dat PHP schrijfrechten nodig heeft en deze ook heeft doordat Apache eigenaar van de betreffende map is. Dus kan PHP schrijven in de betreffende map :)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Idd, de rechten staan goed.
Het enige wat ik tot op heden niet snap is waarom het script denkt dat het als root (uid 0)gestart is :?
Apache kan bij mijn weten helemaal niet als root draaien.

[ Voor 19% gewijzigd door Verwijderd op 19-09-2003 23:03 ]


  • ripperke
  • Registratie: Augustus 2003
  • Laatst online: 19-08 16:06

ripperke

w00t!

PHP:
1
2
3
<?
copy($_FILES['file']['tmp_name'], "/upload/".$_FILES['file']['name']);
?>  


moet zijn

PHP:
1
2
3
<?
copy($_FILES['file']['tmp_name'], "upload/".$_FILES['file']['name']);
?>  


hij gaat nu namelijk in de "maindir" upload proberen te schrijven (die overigens niet bestaat) ipv in /home/username/public_html/upload (of wat dan ook ;))

Edit:

Spider: "doordat Apache eigenaar van de betreffende map is" dat had ik toch net aan getoont dat het niet zo is ;) (map owner = ripperke; apache = www-data)

[ Voor 34% gewijzigd door ripperke op 20-09-2003 05:28 ]

If TCP/IP handshaking was less formal, perhaps SYN/ACK would be YO/WASSUP


Verwijderd

Ik heb ook ooit een probleem gehad met de ellendige safe-mode...

Je moet de functie move_uploaded_file gebruiken

Je moet de target directory van de functie ( move_uploaded_file ) de rechten 777 geven...
Tenminste dat was de response van mijn provider, en het werkte inderdaad...

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 16-08 17:16
Verwijderd schreef op 19 September 2003 @ 23:02:
Idd, de rechten staan goed.
Het enige wat ik tot op heden niet snap is waarom het script denkt dat het als root (uid 0)gestart is :?
Apache kan bij mijn weten helemaal niet als root draaien.
phpinfo?

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Acties:
  • 0 Henk 'm!

Verwijderd

Ik heb momenteel precies hetzelfde probleem.
mijn script maakt een directory welke dan als eigenaar "apache" krijgt
vervolgens probeert mijn script iets in deze dir te zetten (net move_uploaded_file) en dit werkt niet omdat de uid van het script verschillend is als die van de directory terwijl hetzelfde script de directory heeft gecreeerd.. :(

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
phpinfo:
code:
1
User/Group  apache(1000)/102


Ik heb ook de rechten op 777 gezet, dit heeft ook geen effect :?
Heb nu de server maar ge chroot en safe mode uit gezet, dan heb ik iig geen probleem meer :)

Acties:
  • 0 Henk 'm!

Verwijderd

Probleem bij mij is dus dat ik dit niet kan en daarnaast dat de provider "mode_gid" op "off" heeft gezet waardoor de owner ids worden vergeleken :( Daarnaast is het niet mogelijk de door apache geownde directory te ownen naar de webspace gebruiker :( Hierdoor kan tevens de webspace gebruiker de directory niet verwijderen omdat deze van apache is :(
Pagina: 1