chmod probleem

Status
Niet open voor verdere reacties.

gebruiker35

Gebruiker
Lid geworden
29 mrt 2008
Berichten
434
Ik heb bovenin een uploadscriptje het volgende staan:

PHP:
	$edit = $_GET[edit];
			$maker = mkdir("../images/stories/nieuwsberichten/$edit", 0777);
	if($maker){ echo"Map aangemaakt!"; }

Alleen: hij maakt de map wel aan, maar geeft m de rechten 755.
De eigenaar van de map is wwwrun www
Hoe kan ik dit oplossen?
De map nieuwsberichten heeft de rechten 777


safemode staat aan, is dat het probleem?
 
Laatst bewerkt:
Waarschijnlijk idd of safe-mode, of een gebrek aan rechten van je webuser om dat aan te maken.

777 is overigens de default, wat maakt ie ervan als je niks meestuurt?
 
safe mode is het niet.

als ik niets meestuurt wordt het 755.
Hoe kan ik die rechten wijzigen onder paralells plesk?
 
Ik heb wel eens gelezen dat je als je een map via PHP aanmaakt op een Windows server en je geeft rechten mee dat het dan niet werkt. Ik heb hetzelfde probleem gehad, je moet daarna gewoon letterlijk "chmodden":
PHP:
chmod("../images/stories/nieuwsberichten/$edit", 0777);
Dat werkte bij mij wel in ieder geval.
 
agja, soms is de oplossing heeel simpel, maarja je moet er maar opkomen. chmodden is dus inderdaad gewoon de oplossen, thanks!!!
 
Helaas, het probleem is NIET opgelost.

Hij is goed gechmodd, alleen een afbeeldingen erin wegschrijven gaat niet.
In een andere map die ik zelf maak via een ftp programma kan hij wel wegschrijven. ook als ik de map die php aanmaakt verwijder en zelf een map met de goede naam aanmaak kan ik gewoon uploaden.

Het gaat hier om ongeveer 10 mappen die iedere dag moeten worden aangemaakt (andere namen) dus kan het moeilijk handmatig gaan doen.

Hoe los ik dit weer op?
 
Geeft hij misschien een foutmelding? Wat zegt ie dan precies?
 
geeft geen foutmelding, doet hij nooit en ik weet niet hoe ik het aan moet zetten. kan niet bij php.ini, en kan het in plesk niet vinden.

Het enigste wat ie geeft is een eigen echo, omdat ik zeg OR DIE( "hier tekst");
 
Foutmeldingen weergeven doe je zo:

error_reporting(E_ALL);
ini_set('display_errors', 'On');

Dat bovenaan je script zetten.
 
Mag ik vragen waarom je een map die vanaf het web bereikbaar is de rechten 777 mee zou willen geven

Verdiep je even in de betekenis van de 777 en dan weet je dat niemand dat wil
 
hm, you're right, dat was gemakzucht.

775 gebruik ik nu, beter idee denk ik?!

Maar alsnog: ik kan niet schrijven vanuit php
 
PHP draait onder de webuser zoals je al aangeeft.

heeft die eigenaarsrechten op de map waar je naartoe wil schrijven (of op basis van de 775 rechten die je nu uitdeeld (ik zou 766 (max) uitdelen) zit die user in de groep die rechten heeft op de map)
 
Ik weet niet hoe ik dat kan bekijken, in plesk onder webgebruikers staat er dat er geen webgebruikers zijn.

Hoe kan ik die groepen aanpassen enzo?
 
weet niet hoe ik dat moet aanpassen, ben aan het zoeken maar vindt alleen maar tut's over chmod via shell, hoe doe ik dat die userrechten wijzigen?
 
umask

De functie umask kan php's umask op 0 zetten.

Umask zorgt er in bijna alle gevallen voor dat er 22 van de chmod afgetrokken word. 777 zou dan dus 755 worden.

Korte oplossing:

PHP:
$old = umask(0); //zet $old op 22 en umask op 0
mkdir("mapje",0777);
umask($old); //zet umask weer terug op 22

in principe zou dit moeten werken.
 
heeft geen zin...
de chmod werkt wel, wordt wel 777 maar de eigenaar is nogsteeds wwwrun www
trouwens als ik het via ftp met php doe, dus met php via ftp een map aanmaken is de eigenaar wel goed, maar kan ik er geen afbeeldingen inschrijven!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan