PDA

Bekijk Volledige Versie : Apache is de beheerder van mappen en bestanden



PaulE
15/02/07, 20:12
Hey mensen,

Ik zit met een probleem.
Als ik bestanden aanmaak, of mappen met PHP, dan zijn de GID en UID niet mijn gebruikersnaam maar 'apache'

Als ik dit doe:

mkdir ( "test" );

Dan zijn de GID en UID apache.
Ik heb van mijn serverbeheerder SSH gekregen, dus ik dacht ik pas automaitch chown erop aan


exec ( "mkdir test", $ouput );
exec ( "chown -R emich test", $output );
print_r ( $output );

ik krijg dan Array ( ), en meer niet.
De map wordt wel aangemaakt, maar apache blijft de owner van het bestand.

Weet iemand hoe ik dit moet oplossen?
Als ik een bestand wil uploaden via PHP wordt hij ook meteen beheerd door apache.
Valt dit in te stellen voor de serveradmin dat dit niet gebeurd?

Groeten,
Paul

wutr
15/02/07, 20:16
Apache is je webserver en die draait hoogstwaarschijnlijk onder de account Apache in de groep Apache, vandaar dat apache de eigenaar is.

Om jezelf eigenaar te maken kun je kijken of het lukt om met je eigen account via SSH in te loggen en op die manier chown toe te passen.

PaulE
15/02/07, 20:18
Apache is je webserver en die draait hoogstwaarschijnlijk onder de account Apache in de groep Apache, vandaar dat apache de eigenaar is.

Om jezelf eigenaar te maken kun je kijken of het lukt om met je eigen account via SSH in te loggen en op die manier chown toe te passen.
Je bedoeld dus via ssh2_connect en degelijke?
Want dat ondersteund de server niet :(

Digires
15/02/07, 20:20
Volgens mij kun je apache alleen met root overschrijven?

Anders zou het

chown -R emich.emich test
moeten zijn?

wutr
15/02/07, 20:21
Je bedoeld dus via ssh2_connect en degelijke?
Want dat ondersteund de server niet :(

Eigenlijk bedoel ik gewoon via een SSH client zodat je dus in "je eigen stukje van de server" komt. Als je niet weet wat je daar mee moet doen raad ik je aan het ook niet te proberen.

Waarom wil je eigenlijk dat jíj de eigenaar wordt?


Volgens mij kun je apache alleen met root overschrijven?

Anders zou het

chown -R emich.emich test
moeten zijn?

Dit werkt uiteraard niet als er geen emich account op de server bestaat.

Edit: wat ik me nu af begin te vragen is of het ook mogelijk is om door middel van shell commands naar een andere gebruiker zijn of haar map te gaan (cd ../../../sjonnie bijv., ik noem maar wat) en daar dan bestanden waar apache eigenaar van is te wijzigen... of denk ik nou krom?

PaulE
15/02/07, 20:27
Eigenlijk bedoel ik gewoon via een SSH client zodat je dus in "je eigen stukje van de server" komt. Als je niet weet wat je daar mee moet doen raad ik je aan het ook niet te proberen.
Ik weet wel wat ik daarmee moet doen hoor ;)


Waarom wil je eigenlijk dat jíj de eigenaar wordt?
Omdat het altijd nog MIJN bestanden zijn :)
Ik kan er niks mee als ze onder apache vallen. Niks in uploaden, geen rechten aanpassen, geen mappen in maken, niks :S

Het probleem is, wat het om veel mappen gaan, die liever allemaal geautomatiseerd aangepast worden.
Het is voor een foto album die ingedeeld wordt in mappen, zodat het overzicht wat beter wordt in plaats alles in 1 map te stoppen.
Wanneer er een album wordt aangemaakt, moet er ook een map worden aangemaakt voor dat album, waar alle foto's in komen.
Ik heb ook geen zin om elke keer dan weer in te loggen met putty, en alles aan te passen..

Paul

slipperman
15/02/07, 20:32
mkdir ("test");
chmod("test", 0777);

Dit werkt wel ;)

wutr
15/02/07, 20:34
Ik weet wel wat ik daarmee moet doen hoor ;)


Omdat het altijd nog MIJN bestanden zijn :)
Ik kan er niks mee als ze onder apache vallen. Niks in uploaden, geen rechten aanpassen, geen mappen in maken, niks :S

Het probleem is, wat het om veel mappen gaan, die liever allemaal geautomatiseerd aangepast worden.
Het is voor een foto album die ingedeeld wordt in mappen, zodat het overzicht wat beter wordt in plaats alles in 1 map te stoppen.
Wanneer er een album wordt aangemaakt, moet er ook een map worden aangemaakt voor dat album, waar alle foto's in komen.
Ik heb ook geen zin om elke keer dan weer in te loggen met putty, en alles aan te passen..

Paul

Aangezien je ook via FTP niets met die bestanden kunt lijkt het mij een verkeerd geconfigureerde server. De map (jouw root dus) moet door jouw account "geownt" worden. Even contact opnemen met de host lijkt mij het verstandigst...

Chmod 777 doet ook wonderen overigens bedenk ik me nu :)

Edit: Ik was te traag met m'n verhaaltje dus nu staat er twee keer chmod 777, denk dat dat dan wel werken gaat!

PaulE
15/02/07, 20:34
mkdir ("test");
chmod("test", 0777);

Dit werkt wel ;)Hehehe, geweldig! :P

Jammer dat de mappen nog wel onder apache vallen :(

Komto
15/02/07, 20:35
Hehehe, geweldig! :P

Jammer dat de mappen nog wel onder apache vallen :(
En wat is daar het probleem mee?
Je kan er alles mee op dat moment.

PaulE
15/02/07, 20:41
En wat is daar het probleem mee?
Je kan er alles mee op dat moment.Dat wel, maar onder emich staat het wel vetter :P
Maar dit kan ik natuurlijk altijd handmatig later een keer proberen.
Iig bedankt, want het belangrijkste is nu gebeurd! :)

wonko
18/02/07, 09:47
Merk op dat door je bestanden 777 te zetten, iedereen op de server de bestanden kan lezen en overschrijven. Niet zo'n goed idee dus.

Aan de basis ligt het probleem dat de webserver zijn php-processen uitvoert als de webserver-gebruiker, en niet de gebruiker van de bestanden zelf. Slecht geconfigureerde server dus.

t.bloo
18/02/07, 11:01
mja, slecht geconfigureerd zou ik het niet willen noemen. het kan anders, het is een keuze, zeker geen recht. ik zou (om bovengenoemde redenen) nooit anders willen dan scripts laten draaien onder de eigen user, maar dat kost dus gewoon meer. het is de keuze die je maakt, heb je dit nodig dan moet je naar een andere host of server configuratie.

blaaat
18/02/07, 14:50
Misschien kan je mbv. cronjobs (die dan wel onder eigen gebruiker draaien?) een php-file aanroepen zodat die onder eigen user gedraaid wordt, en daarin de mappen maken.