[PHP] Script starten als user met eigen pidfile

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik zoek een mothode om een script, bijvoorbeeld voor een gameserver, te starten als eigen user.

Een gameserver is een goed voorbeeld omdat dit in de praktijk ook als eigen user gerund wil worden per game.

Ik ben redelijk bekend met inlogscripts en aanverwante zaken, alleen kan ik niet uitvinden of je als je per user een script of iets dergelijks wil starten ook een Linux user zou MOETEN zijn.

Ik dacht eigenlijk dat je bijvoobeeld met dit:

code:
1
apache  ALL=(USERNAME)NOPASSWD: /path/naar/script


een script kon laten starten zonder dat de user echt bestaat, dat kan dus niet.

Mijn korte vraag is eigenlijk; Zal ik een userdatabase bij moeten houden en deze spiegelen met de users in Linux ?

Dit zou de meest flexibele manier zijn om Unix users aan te maken en weg te gooien, of zou een Webmin-way een beter idee zijn ?

Voor alle duidelijkheid:

Ik probeer dus een user aan te maken welke zijn eigen script kan starten en stoppen en waar hij alleen rechten op heeft. additionele files moeten te doen zijn.

  • FragFrog
  • Registratie: September 2001
  • Laatst online: 09:34
Of het op linux kan weet ik helaas niet, met windows moet je in ieder geval wel altijd een bestaande user gebruiken om een proces te starten.

Wat wel universeel werkt en wellicht een alternatief is voor je is in een database bijhouden wel proces door welke webuser gestart is. Op deze manier kun je alle gameservers door 1 linuxuser laten starten maar hou je toch controle over wie bij welk proces kan - dit is ook vrij simpel te realiseren met proc_open() en proc_get_status(). Als dat geen optie voor je is ben ik bang dat je toch inderdaad je userdatabase zal moeten spiegelen :)

// edit @ hieronder: voor zover ik het begrijp wil RutgerM juist niet-bestaande UID's gebruiken om een proces in te runnen. posix_setuid() bijvoorbeeld werkt dan niet AFAIK :)

[ Voor 13% gewijzigd door FragFrog op 23-08-2007 13:37 ]

[ Site ] [ twitch ] [ jijbuis ]


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
euhm, setuid?
Daar moet het toch mee te doen zijn.

[ Voor 59% gewijzigd door Grijze Vos op 23-08-2007 13:23 ]

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Verwijderd

Topicstarter
Grijze Vos schreef op donderdag 23 augustus 2007 @ 13:22:
euhm, setuid?
Daar moet het toch mee te doen zijn.
Ja, er zijn verschillende mogelijkheden.

Ik bedenk me alleen wel dat men bijvoorbeeld maps zou willen uploaden, hier moet je dus een Unix user voor hebben, anders heb je een probleem, setuid zal dus niet werken in dat geval denk ik.

Ik ben verschillende scripts aan het bekijken om te weten hoe men het doet, ik heb nog geen keus kunnen maken, maar hier moet een goede manier voor zijn.

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Wat wil je nu precies?
Dit is wat ik ervan maak:
  • Een user kan via een PHP webinterface bestanden uploaden.
  • Een user kan vervolgens die bestanden uitvoeren.
  • Dit uitvoeren moet gebeuren onder een username die gelijk is aan de username in jouw PHP webinterface.
Klopt dit een beetje?

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Verwijderd

Topicstarter
Grijze Vos schreef op donderdag 23 augustus 2007 @ 13:52:
Wat wil je nu precies?
Dit is wat ik ervan maak:
  • Een user kan via een PHP webinterface bestanden uploaden.
  • Een user kan vervolgens die bestanden uitvoeren.
  • Dit uitvoeren moet gebeuren onder een username die gelijk is aan de username in jouw PHP webinterface.
Klopt dit een beetje?
Dat klopt helemaal.

De basis is waar het om draait, en hier probeer ik dus een keus in te maken hoe dit te doen.

Ik dacht eigenlijk dat hier wel meer opensource projecten voor zouden zijn dan alleen Webmin, dit valt toch erg tegen. Je kunt hier namelijk ontzettend veel goede informatie uit halen.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben er achter dat de normale ControlPanels gewoon een user aanmaken met een homedirectory en eigen rechten.

In een database maken ze de user ook aan waar ook een PID variabele komt te staan.

Het is dus redelijk de normale weg die men volgt.

eigenlijk alleen useradd en userdel gebruiken + een script er achter... hoe simpel kan het zijn :9
Pagina: 1