[php] vreemde error in php

Pagina: 1
Acties:

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
Ik heb een upload script gemaakt die een directory aanmaakt en vervolgens in die directory een plaatje zet. Als ik een paar plaatjes upload dan doet hij het.. echter als ik na een aantal minuten weer plaatjes wil uploaden verschijnt de volgende melding:

Warning: SAFE MODE Restriction in effect. The script whose uid is 10007 is not allowed to access /usr/local/psa/home/vhosts/cblabla.nl/httpdocs/clubs/images/gebruikers/rsd owned by uid 2526 in /usr/local/psa/home/vhosts/cblabla.nl/httpdocs/clubs/fototoevoegen.php on line 31

Weet iemand hoe ik dit kan omzeilen. Om de directory aan te maken doe ik het volgende:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
if (!is_dir($destination)) {
    mkdir($destination,0777);
    chmod($destination,0777);
}

//ik heb ook al 

if (!is_dir($destination)) {
    mkdir($destination,0775);
    chmod($destination,0777);
}

//geprobeerd


Weet iemand toevallig wat er aan de hand is. In het begin kan ik wel paar x uploaden erna dus bovenstaande foutmelding

  • narotic
  • Registratie: Maart 2002
  • Laatst online: 02-11-2021
Maakt het niet uit welke naam de directory die je wilt maken heeft?

- = Step Into The Pit | Industrial Strength = -


  • baggah
  • Registratie: December 2000
  • Laatst online: 28-08 22:47
Je hebt waarschijnlijk gewoon geen rechten omdat php in safe mode draait...
Je moet die directories/bestanden de zelfde owner geven als dat de webserver draait dan werkt het waarschijnlijk wel.

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
ja dat makat wel uit, maar die dirnaam is altijd uniek...
Je hebt waarschijnlijk gewoon geen rechten omdat php in safe mode draait...
Je moet die directories/bestanden de zelfde owner geven als dat de webserver draait dan werkt het waarschijnlijk wel.
Dat doe ik toch al met chmod? Het rare is dat ik in het begin gewoon kan uploaden en hij maakt de dir aan. Maar na een tijdje geeft hij dus bovenstaande melding

  • baggah
  • Registratie: December 2000
  • Laatst online: 28-08 22:47
Nee, dat doe je niet met chmod(rechten) maar met chown(owner) :)

[ Voor 0% gewijzigd door baggah op 16-10-2002 16:21 . Reden: links erbij gezet ]


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Kijk gewoon eens naar de foutmelding! Die geeft op zich genoeg info. Je kunt dan wel 777 op je dirs doen, maar door de safemode mag het script alleen bij z'n eigen dirs en rsd is daar dus niet 1 van!

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • narotic
  • Registratie: Maart 2002
  • Laatst online: 02-11-2021
Dat denk ik ook ja.

Let er ook op dat aan upload hoeveelheid beperkingen zitten. Standaard dacht ik 8MB (alhoewel dit volgens mij per file geldt). Kijk anders een op http://www.php.net en check ff wat er allemaal voor beveiligingen gelden voor de safe mode.

- = Step Into The Pit | Industrial Strength = -


  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
int chown ( string filename, mixed user)

Attempts to change the owner of the file filename to user user (specified by name or number). Only the superuser may change the owner of a file.

Returns TRUE on success or FALSE on failure.
uhm , domme vraag misschien, maar wat moet ik dan als 2e argument meegeven?

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
Heb het net met :
PHP:
1
ini_set("safe_mode_gid","1");

geprobeerd, maar dat was ook geen succes en die chown functie begrjijp ik niet helemaal :(

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Zou wat wezen als je de safe_mode zo simpel kon disablen ;)
Maar het is heel "simpel" je _mag_ die directory niet aanraken van php, chmodden gaat dus ook niet
Voor uitleg van chmod moet je maar even de NOS-faq lezen, staat daar precies in uitgelegd.

Verwijderd

Kijk eens in post [rml][ PHP] Safemode probleem[/rml]

Daar staat ook al het één en ander over dit probleem. Ik kamp er ook mee nl. Ik ga het met ftp proberen in ieder geval en niet meer met mkdir()

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
ftp is voor mij geen optie... maar wat is de NOS faq?? Toch niet van het journaal he :)

En ACM als het niet via chmod kan, hoe kan het dan wel volgens jou?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

RSD schreef op 16 oktober 2002 @ 16:51:
ftp is voor mij geen optie... maar wat is de NOS faq?? Toch niet van het journaal he :)

Grmbl...

Hoe lang kom je hier al?
Dan had je toch wel es de algemene FAQ moeten doorkijken en had je geweten wat NOS betekend...
Non-windows Operating Systems.
RSD schreef op 16 oktober 2002 @ 16:51:
En ACM als het niet via chmod kan, hoe kan het dan wel volgens jou?
Heel "simpel" Niet

Niet makkelijk iig als je heeeel moeilijk doet kan je iets doen wat ik een tijd terug uitlegde.
Maar ik hou het bij de uitleg en als je die niet snapt heb je pech, ik ga dat niet voor je uitwerken:

Zorg er voor dat je php script recht heeft in de "huidige" dir te schrijven (die gene waar ie instaat dus).
Dan is het uid van de dir en van je script gelijk, dus daar mag je in schrijven.
Laat php een nieuwe php-file schrijven in die huidige dir en dat nieuwe php-script kan je dan laten doen wat je wilt in de nieuwe dir. (Want dat nieuwe script is gemaakt door de 'apache-uitvoerende-user' en niet jouw eigen user en daardoor heeft die dezelfde 'uid' als die nieuwe dir en gelden de safe-mode restricties daar minder hard voor in dit geval)

Btw, chmod heeft trouwens helemaal niets van doen met deze melding. De eigenaar van de directory komt niet overeen met die van het script en daar gaat het de mist in, is een rechten-check die php zelf doet en niets met al dan geen schrijfrechten te maken heeft.
chmod zou een code-woord zijn dat je zoekt, ware het niet dat een gewone user dat sowieso al niet mag uitvoeren.

Verwijderd

FTP is wel een optie neem ik aan als je een php-script gebruikt om met ftp een directory aan te maken. Kan allemaal automatisch.

Ik denk alleen dat je username en password verwerken in een script niet zo best is. Kan volgens mij de hele wereld meekijken...

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
Ik vind het maar vreemd... waarom verandert die UID dan? Ik upload iets in een browser.. ik wacht een bepaalde tijd en upload iets anders en dan geeft hij die error... Dat klopt toch niet?

Verwijderd

Is het trouwens niet mogelijk om op 1 of andere manier de UID te wijzigen (tijdens het verloop van het script) zodat je je script UID dus gelijk maakt aan de owner UID, en het wel zou moeten werken?

Vraag me niet hoe, heb er wel iets over gelezen, maar schijnt vrij complex te zijn... Misschien dat een slimme php-er hier er iets over weet?

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
Ja daar had ik ook al naar gezocht, maar weinig gevonden, dan zou je misschien met chown dat kunnen aanpassen, maar dan moet je wel eerst de UID van je systeem weten denk ik

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

RSD schreef op 16 oktober 2002 @ 17:00:
Ik vind het maar vreemd... waarom verandert die UID dan? Ik upload iets in een browser.. ik wacht een bepaalde tijd en upload iets anders en dan geeft hij die error... Dat klopt toch niet?

Je snapt het principe van users nog niet helemaal?
Jij upload iets als user 'rsd', dat is jouw account.
Niemand anders mag daar aankomen (nahja, de adminstrator natuurlijk ;) )

Apache moet ook "als een user" draaien, het kan natuurlijk maar als 1 user tegelijk draaien en niet als alle 1000 op een systeem oid.
Kortom er is een "user voor apache", die user heet vaak 'nobody', 'www', 'apache', etc.
Apache handelt dus met deze "user voor apache" alle requests af. Alle php-script worden dan ook uitgevoerd met de rechten, het userid, etc van die "user voor apache".
Daardoor 'veranderd' het UID, je php-file veranderd niet, maar de wordt niet door 'jou' (rsd) uitgevoerd.
Dus alle nieuwe bestanden die jij via php laat maken, uploaden, etc zijn ook niet van die rsd-user, maar van die "user voor apache"...

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
Ja maar als ik 1 foto upload dat lukt, hij geeft geen error.... nu wacht ik een paar minuten en upload nog eens een foto.. nu gefet hij die error :?

Als ik vlak na elkaar een paar bestanden upload gaat het ook goed, tenzij ik een tijdje wacht dan niet meer!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Dat kan niet gebeuren, je doet dus nog wat anders fout.

En anders moet je je hoster es vragen of die speciale periodieke taken op die server uitvoeren.

  • RSD
  • Registratie: Maart 2001
  • Laatst online: 08-02-2017
Het is toch zo... in het begin kan ik veel uploaden.. wacht ik een paar minuten dan niet meer. Ik heb net ook iemand anders van een andere pc laten inloggen en erna uploaden en hij kon ook gewoon uploaden.

Is het trouwens mogelijk om die error op te vangen?

Het is heel vreemd, heel af en toe geeft hij die error ook maar he! heel vreemd...
Pagina: 1