Hallo,
voor een systeem dat we ontwikkelen moeten we een PHP script uitvoeren als een andere UNIX-gebruiker.
PHP draait op Apache via CGI en suPHP zodat de PHP scripts onder de desbetreffende user account draaien. Nu loggen de gebruikers in op één centrale site waar ze aanpassingen aan hun site kunnen doen. Deze worden dan door een cron in hun home folder toegepast; deze cron kan ook uitgevoerd worden via het webpanel.
Hier zit nu juist het probleem: hoe kan ik ervoor zorgen dat dit wordt uitgevoerd onder de juist user account? Ik heb al wat lopen prutsen met setuid wat niet veel opleverde en momenteel heb ik gewoon het script in de public_html root geplaatst zodat het via GET-aanroep correct wordt uitgevoerd.
Natuurlijk is dit geen ideale oplossing aangezien het hierdoor ook publiekelijk beschikbaar is voor de verkeerde mensen. Ik heb al lopen denken om een daemon te schrijven die de cron lokaal uitvoert als er een bepaald bericht naartoe wordt geschreven over TCP maar dit lijkt me overkill om m'n probleem op te lossen.
Heeft iemand andere ideeën?