PHP & sudo

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
StaticDev
Beiträge: 6
Registriert: 13.07.2019 13:46:28

PHP & sudo

Beitrag von StaticDev » 13.07.2019 14:03:57

Guten Tag,
Ich programmiere momentan für mein Minecraft-Server eine App, auf welcher man Spielgeld erspielen kann.
Meine Idee ist es, das man das Spielgeld auf den Server übertragen kann.
Ich habe eine PHP Seite entwickelt, auf der man 2 Attribute angeben kann. Diese sind das Spielgeld (coins) und der Nutzername (username), Natürlich weiß ich, wie man diese Seite aufruft und das anwendet. Ich habe vor, dass man dann über sudo die Informationen weitergibt. Das Problem was ich habe, ist dass ich nicht weiß, wie man bei sudo den Account root angeben kann. Da der Screen auf dem Account root läuft geht das nicht, weil Apache2 ja den Nutzer var-www oder so hat. Ich habe unten das PHP Script verlinkt, damit man mich auch versteht. Außerdem weiß ich nicht, wie man die Argumente im screen Befehl angibt. Ich möchte das der Befehl zum screen master "cmd Lobby-1 addcoins (dann der nutzername, der in meinen Fall als username angegeben wurde) (und dannach die coins, welche ebenfalls als coins in php angegeben wurden.)

Ich habe euch das Script hier verlinkt:

pastebin/?mode=view&s=40790

Ich hoffe ihr könnt mir helfen.
Mit freundlichen Grüßen,
StaticDev | Nicklas

DeletedUserReAsG

Re: PHP & sudo

Beitrag von DeletedUserReAsG » 13.07.2019 14:42:28

Kurz (und OT): das ist eine äußerst dumme Idee. Du solltest dir überlegen, wie man’s komplett ohne Root-Rechte machen kann.

StaticDev
Beiträge: 6
Registriert: 13.07.2019 13:46:28

Re: PHP & sudo

Beitrag von StaticDev » 13.07.2019 15:19:28

Guten Tag,
Man könnte das komplette System über einen anderen Benutzer laufen lassen, also nicht root.
Doch dann müsste man immer noch einen Benutzer bei screen angeben

Mit freundlichen Grüßen
StaticDev

reox
Beiträge: 2463
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: PHP & sudo

Beitrag von reox » 14.07.2019 22:12:52

Also was du suchst ist eine möglichkeit aus der Webapplikation einen shell befehl als root abzusetzen?
Die erste frage ist: Warum rennt der minecraft server (?) als root? Das ist sehr wahrscheinlich nicht notwendig.
Ich würde alles als nicht-root user laufen lassen, wie niemand schon richtig angemerkt hat.

Dann ist es vermutlich am sinnvollsten, wenn du einen service schreibst, welcher über ein Protokoll deiner Wahl erreichbar ist, die Argumente übernimmt und dann den befehl ausführt.
Sowas nennt man dann auch IPC und vermutlich eignen sich sockets: https://de.wikipedia.org/wiki/Interproz ... on#Sockets
Ich hab schon ur lang nix in PHP gemacht, aber sockets gibts dort auch: https://www.php.net/manual/de/book.sockets.php

Irgendwelche Befehle über eine Webseite entgegen zu nehmen ist jedenfalls sehr gefährlich, wenn du keine Ahnung hast was du tust. Vor allem irgendwelchen ungefilterten text per root auszuführen ist ganz ganz schlecht.
Der Service der das ganze wrapped sollte am besten per whitelist funktionieren, dH du weißt ganz genau welche inhalte erwartet werden und alles andere wird strikt abgelehnt.
Bevor du das produktiv einsetzt solltest du das ausgiebig testen!

Antworten