Toon posts:

[PHP] Probleem met rechten

Pagina: 1
Acties:

Verwijderd

Topicstarter
Door PHP wordt een .PDF-bestand gegenereerd die op de server wordt opgeslagen. Dit PDF-bestand wordt direct na opslaan ge-chmod:

PHP:
1
chmod($file, 0777);

So far so good! Ook het FTP-programma geeft aan dat de chmod succesvol is gewijzigd in 0777.

Als ik vervolgens in het FTP programma (of via een cronjob, waarbij dan dus ook sprake is van een andere 'owner') het betreffende bestand wil verwijderen, krijg ik de volgende error:

code:
1
550 Could not delete contact.gif: Permission denied


Stel dat ik in het FTP programma nog eens het betreffende bestand wil chmod-en, dan krijg ik de volgende error:

code:
1
550 Could not change perms on contact.gif: Bad file descriptor

Verwijderd

Ik denk dat de rechten of ownershhip op de bovenliggede map niet goed staan, dit voorkomt dus dat je bestanden kan verwijderen en chmodden. Dat het via php kan zal wel omdat de uitvoeren user van apache (of andere webserver) het zelfde is als de owner van de bovenliggende map

Verwijderd

Topicstarter
Verwijderd schreef op maandag 29 januari 2007 @ 12:59:
Ik denk dat de rechten of ownershhip op de bovenliggede map niet goed staan, dit voorkomt dus dat je bestanden kan verwijderen en chmodden. Dat het via php kan zal wel omdat de uitvoeren user van apache (of andere webserver) het zelfde is als de owner van de bovenliggende map
Ik denk inderdaad dat je gelijk hebt. Maar dan; wat doe ik er aan?

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 02-02 19:38

Creepy

Tactical Espionage Splatterer

De rechten aanpassen zodat de FTP gebruiker schrijfrechten heeft in die map. Dit kan echter alleen root of de eigenaar van de betreffende map. Als de gebruiker waaronder de webserver draait deze rechten heeft dan kan je met php de rechten aanpassen op dezelfde manier als dat je nu doet voor je PDF bestand.

Daarnaast nog een kleine move naar Non-Windows Operating Systems want met Programmeren heeft je topic eigenlijk niks te maken. Het is een pure rechten kwestie.

[ Voor 23% gewijzigd door Creepy op 29-01-2007 13:08 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

De map waarin je de PDF bestanden plaatst aannmaken via je ftp user. Dan ben jij de owner van die map en niet de webserver

Verwijderd

Topicstarter
Verwijderd schreef op maandag 29 januari 2007 @ 13:09:
De map waarin je de PDF bestanden plaatst aannmaken via je ftp user. Dan ben jij de owner van die map en niet de webserver
De mappen die worden aangemaakt moeten helaas aangemaakt worden door APACHE. Dit resulteert echter in bestanden met owner_id 80. De cronjob kent echter owner_id 2001, waardoor die dus niet de juiste rechten heeft om bestanden met owner_id 80 te managen/verwijderen.

Ook handmatig de UID wijzigen werkt helaas niet. Zoveel bij het aanmaken als achteraf niet.

Iemand nog een oplossing?

[ Voor 17% gewijzigd door Verwijderd op 29-01-2007 13:56 ]


Verwijderd

Een timertje maken in een db die bij elke webrequest wordt geraadpleegt en wanneer de tijd verstreken is de cleanup code draaien door iemand die de website raadpleegt?

Verwijderd

Topicstarter
Verwijderd schreef op maandag 29 januari 2007 @ 14:43:
Een timertje maken in een db die bij elke webrequest wordt geraadpleegt en wanneer de tijd verstreken is de cleanup code draaien door iemand die de website raadpleegt?
Goed bedacht!.....

Alleen jammer dat 't niet echt een nette oplossing is :(

Zal 't iig in overweging nemen. Thanx!

  • Spleasure
  • Registratie: Juli 2001
  • Laatst online: 13-12-2025

Spleasure

Ik hier?

beetje offtopic, maar 0777 betekent uitvoerbaar+beschrijfbaar+leesbaar voor iedereen. Je kunt beter 0666 gebruiken, dat is alleen beschrijfbaar+leesbaar voor iedereen. Het is geen uitvoerbaar bestand, dus dat kun je weglaten.

  • DiedX
  • Registratie: December 2000
  • Laatst online: 02-02 22:25
Voorlopig is hij met 666 al niet uitvoerbaar, laat staan 777.

DiedX supports the Roland™, Sound Blaster™ and Ad Lib™ sound cards

Pagina: 1