Andere linux user PHP
Ik wil met PHP een binary opstarten, alleen de standaard user waarmee PHP deze draait is www-data o.i.d., maar ik wil dit graag onder een andere user opstarten. Is dat mogelijk ? En zoja hoe ;-) ?
Alvast bedankt!
Ricardo
Als je een eigen server hebt met root toegang is er wellicht 1 en ander mogelijk, maar anders: nee. Als dat wel zou kunnen zou dat een groot veiligheid risico zijn. Want dan kun je namelijk directory's en bestanden van andere gebruikers op de server bekijken. Zou leuk zijn :) Maar die andere gebruikers kunnen dat dan ook bij jou, en das minder.
Ja het gaat om mijn eigen server met root toegang. Ook gaat het om een privé omgeving, opstarten van gameservers. Is het op een of andere manier mogelijk om elke gameserver onder een andere user op te starten ? Dit omdat anders de configfiles van een game allemaal overschreven worden in de home map van een user.
Met bijvoorbeeld mod_ruid kun je de user waaronder een website draait aanpassen.
mod_suphp, volgens mij vaker gebruikt.
Of Quote:
Ik wil met PHP een binary opstarten ... ik wil dit graag onder een andere user opstarten
en
Quote:
Is het op een of andere manier mogelijk om elke gameserver onder een andere user op te starten
Meerdere binary's opstarten onder verschillende user's. Welke user PHP zelf draait is neit van belang.
Heb je al ge-Googled en al iets geprobeerd met setuid?
hij wil namelijk dat hij met php een nieuwe user kan aanmaken.
Dus dat hij bv een user maakt als user01.
Dan maakt hij in de map /home/ een nieuwe map user01 genaamd en wil hij met php die map chown'en naar de user user01.
Daarna wil hij via php als user01 een bestand starten uit die map.
Het klinkt ingewikkeld, maar het komt er eigenlijk op neer dat hij met php een user maakt, een map maakt, die map chown'en en een file start (via die net aangemaakte user).
EDIT: Deze link kan misschien al een eerste stap zijn?
http://www.weberdev.com/get_example-3766.html
EDIT2: Volgens mij moet je beginnen met iets als: exec(useradd user01 -ppassword -d/home/user01);
Gewijzigd op 26/06/2010 17:22:57 door Ruben Portier
Kleine opmerking: de enige die in Linux een user aan het systeem kan toevoegen is root. Niemand anders kan dat. Zomaar even vanuit PHP een user toevoegen zal dus niet gaan want PHP draait niet als root.
Gewijzigd op 26/06/2010 18:59:57 door Piet Verhagen
Ik denk alleen als een game server aangemaakt word?
@Ruben
Dus eigenlijk gewoon een control panel als ik het zo zie..
Ik maak een nieuwe account (website) die heeft bijvoorbeeld klant01.
Dan geef ik die klant 1 servers, voor die server wordt een nieuwe user in linux aangemaakt met als naam: server01. Die krijgt ook zijn eigen home directory.
Als de klant via de site inlogt en dan zijn server start moet PHP het bestand waarmee de server wordt gestart openen als de server01 user.
Maar om die user te maken, kan je niet iets maken dat je met PHP een bash bestand opent, en dat die bash dan een user aanmaakt?
Dan maak je dus in PHP dat je eerst een username opgeeft ofzo (server02). Dan slaat hij dat op in een tekstfile en opent die bash. Die bash haalt dan de username uit dat tekstbestand.
Dit zou misschien wel kunnen werken.
Gewijzigd op 27/06/2010 11:56:43 door Piet Verhagen
Laat een cron onder root draaien die kijkt of er een bestandje staat op een plek die buiten de webroot ligt. Zo ja dan kan dat bestandje gelezen worden en een nieuwe user aangemaakt worden. Daarna het bestandje verwijderen.
In php zet je dan enkel op die plek een bestandje neer met de juiste inhoud.
Echter, nogmaals, het kan misbruikt worden. Dus weet wat je doet.
Edit:
Zet op zijn minst zo'n accout op nologin, dan kan men niet zomaar op de server inloggen.
Gewijzigd op 27/06/2010 12:29:24 door - SanThe -
Zou je niet sudo zo kunnen instellen dat de php gebruiker useradd mag aanroepen?
Moet je wel het wachtwoord invoeren. In de console word dat apart gevraagd op een aparte regel nadat je het sudo command ingevoerd hebt. Maar misschien kun je het wachtwoord direct in de commando regel zetten?
Jelmer rrrr op 26/06/2010 10:09:50:
Of mod_suphp, volgens mij vaker gebruikt.
Bedankt! Volgens mij gaat het hiermee lukken :-)
Ook de rest bedankt natuurlijk voor de opmerkingen, mocht het toch mislopen met deze methode zal ik zeker eens naar de andere aangedragen oplossingen kijken.
Gewijzigd op 28/06/2010 12:52:17 door - Ricardo -
Jelmer rrrr op 26/06/2010 10:09:50:
Of mod_suphp, volgens mij vaker gebruikt.
Ik zat al te denken er was er nog een mogelijkheid.
Er zit vooral verschil in of je PHP in CLI of CGI mode draait. suPHP draait niet onder CLI.