[php] Verschillende uid's gebruikt door php?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Scyth
  • Registratie: Juli 2001
  • Laatst online: 16-03-2024

Scyth

Fat finger, three beer

Topicstarter
Een stuk php script om logfiles van m'n cms weg te schrijven loopt tegen rechtenproblemen aan.
Nu weet ik niet 100% zeker of het aan mijn script ligt, of foutieve instellingen van de host. In het laatste geval moet de engine hier alsnog mee overweg kunnen, en critical foutmeldingen dan maar gewoon dumpen op het scherm. Affin, dat terzijde.

De directorystructuur naar de logfiles is simpel:
code:
1
2
3
4
5
6
7
 <root>
 |
 |--  _docs
 |       |--  _errlogs
 |       |       |--  20050425.log
 |       |
 |

De _docs directory wordt met het uploaden meegezonden, _errlogs niet persé. Deze wordt, omdat deze namelijk ook leeg kan zijn (fresh install), gemaakt bij de eerste error. En daar gaat het mis.

Omdat _docs gemaakt is met de FTP account, heeft PHP geen schrijfrechten. Mijn enigszins beperkte kennis van de rechtenstructuur zegt mij dan dat de _docs directory op 0777 gezet moet worden in de FTP client. Dit werkt, maar veilig lijkt me dit niet. Nadat de _errlogs directory dan gemaakt is, kan _docs weer op 0755 gezet worden met de FTP, en blijft PHP owner van _errlogs.

Dit is ook te zien aan de functie fileowner() van php, die netjes 48 returned als owner van _errlogs.
Wat mij nu verbaast, is dat zodra ik mkdir doe, de owner 48 is, maar zodra ik getmyuid() doe, ik nummer 507 gereturned krijg. 507 is OOK de eigenaar van _docs.

Wie draait nu onder wat?

FTP heeft id 507 (te zien aan eigenaar van _docs),
PHP maakt een directory, vervolgens is de owner daarvan 48,
getmyuid() returned 507.

Kan iemand mij vertellen wat er ergens scheef loopt? Als ik toch uid 507 heb volgens getmyuid(), zou ik toch dezelfde rechten moeten hebben als mijn FTP client?

[ Voor 5% gewijzigd door Scyth op 25-04-2008 11:42 . Reden: typo ]

Dell Studio XPS 16
Project: BavBierSub 1.0 BavBierSub 2.0


Acties:
  • 0 Henk 'm!

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 18-08 21:31
Jij wilt posix_getuid() gebruiken.
getmyuid geeft de eigenaar van het huidige script terug (het bestand dus), niet van de gene die het script uit voert.