Ik wil graag een (simpele) PHP webinterface schrijven om bepaalde root commando's in een gecontroleerde omgeving uit te voeren. Daarbij zorg ik zelf voor de adequate beveiliging op de webserver. In dit geval gaat het om de 'xm' commando's van de Xen hypervisor, maar ik heb meer toepassingen waarvoor ik dit wil gebruiken.
Nu heb ik zelf al een aantal dingen gevonden, waaronder natuurlijk sudo. Op zich werkt dit wel, maar het liefst heb ik dat het root wachtwoord nergens plaintext moet komen te staan. Ook het toestaan van een reeks commando's in sudoers is niet bepaald generiek. De bedoeling is dat de user op de webinterface inlogt met het root wachtwoord. Zo kan ik eventueel het wachtwoord encrypted opslaan in een session var en de key in een cookie aan de user geven.
Sommige websites hebben het over het zelf implementeren van (of het gebruiken van een library voor) het ssh protocol en daarmee een connectie naar localhost te maken. Eerlijk gezegd vind ik dit niet echt een oplossing maar een workaround.
Wat is in dit geval 'best practice'?
Nu heb ik zelf al een aantal dingen gevonden, waaronder natuurlijk sudo. Op zich werkt dit wel, maar het liefst heb ik dat het root wachtwoord nergens plaintext moet komen te staan. Ook het toestaan van een reeks commando's in sudoers is niet bepaald generiek. De bedoeling is dat de user op de webinterface inlogt met het root wachtwoord. Zo kan ik eventueel het wachtwoord encrypted opslaan in een session var en de key in een cookie aan de user geven.
Sommige websites hebben het over het zelf implementeren van (of het gebruiken van een library voor) het ssh protocol en daarmee een connectie naar localhost te maken. Eerlijk gezegd vind ik dit niet echt een oplossing maar een workaround.
Wat is in dit geval 'best practice'?