Kleinen Schubser bei Ubuntu Server...

kartoffelpü schrieb:
Ich vermute, dass das Hauptproblem bei dir ist, dass Non-Root-User keine Dienste auf Ports < 1024 zur Verfügung stellen können.
Erstes Ergebnis, aber ich vermute, dass es bessere Lösungen gibt: https://confluence.atlassian.com/fi...er-as-a-non-root-user-on-linux-701268563.html

Aber wie kann das denn so kompliziert sein? Überall wird es so einfach beschrieben, wie z.B. hier mit einem Minecraft Server: https://www.howtoforge.com/tutorial/minecraft-server-ubuntu/ "Mach dir nen User, installiere Minecraft und spiele...". Da werden keine krassen Permissions gesetzt oder Ports freigegeben. :/
 
Der howtoforge Beitrag geht auf viele potentielle Probleme und Konfigurationsmöglichkeiten gar nicht ein.
Vergleich zB mit Archlinux-Wiki Eintrag über minecraft

  • Minecraft nutzt default ports (hier) > 1024 - damit gibt es keine Probleme
  • Minecraft ist "monolithisch" - alle Komponenten sind in Java
  • Pastebin benutzt einen Webserver mit PHP und evtl. Datenbank - also "extra" Dienste / Konfigurationen - wegen der "Vielzahl" an Konfigurationsmöglichkeiten nutzen dann vielleicht viele Docker / Container-Images, die "fertig" sind (1 Zeilen Installation) - Standardpasswörter, Standardports und Standard-Sicherheitslücken inclusive
 
  • Gefällt mir
Reaktionen: netzgestaltung und nocie
Weil du bei der Minecraft Anleitung beim spannenden/relevanten Teil scheinbar nicht weiter gelesen hast was man da noch so macht sondern nur copy&paste gesehen hast ;)
Da wird nämlich eine systemd unit angelegt um den Minecraft automatisch zu starten. Das Starten dieser systemd unit wird von root übernommen aber die Anwendung an sich läuft dann unter dem zuvor angelegten Benutzer.

Praktisches Beispiel ohne Linux: Stell dir vor du hast ein Auto und der normale Fahrer (normaler User) darf alles außer Motor starten und darf nur auf freier Strecke fahren. Zusätzlich gibt es den Anlasser-Menschen (root) der das Auto auf die Strecke schiebt und den Anlasser betätigt und danach dem Fahrer das OK gibt. Wird das Auto dann während der Fahrt kompromittiert/beschädigt dann passiert nur dem Fahrer etwas aber nicht dem Anlasser-Menschen.

Bei dem genannten Privatebin wird's ähnlich sein. Beim Start des OS wird der Webserver gestartet läuft dann aber nicht unter dem User root sondern beispielsweise dem User www-data.

Vergleichbares gibt es auch bei Windows. Rechtsklick auf eine Anwendung und du kannst diese als Administrator starten. SHIFT + Recksklick zeigt dann auch die Option die Anwendung als ganz anderer Benutzer zu starten. Gleiches gilt auch für die ganzen Dienste, die unter Windows laufen. Im besten Fall lässt man irgendwelche (Server-)Dienste unter einen eigenen nicht-privilegierten User laufen der auch nicht die Berechtigung hat, sich irgendwie (interaktiv) anzumelden aber ich schweife ab...
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: nocie
ChristianSL schrieb:
Ich kann dir leider nur sehr schwer folgen.
Du willst nen minecraft-server starten? Dann mach das doch einfach. Ansonsten bitte mehr Dteails was genau du wie probiert hast, und was das erwartete und beobachtete Verhalten ist.

Okay. Nehmen wir das Beispiel: https://github.com/bilde2910/Hauk (kann auch gerne durch den Minecraft Server ersetzt werden). Ich habe dies installiert und ich weiß auch wie es funktioniert, da ich es auf dem anderen VPS unter root ganz schnell hinbekommen habe. Jetzt aber unter einen anderen User, welcher eben nicht root ist, kann ich einfach keine Verbindung herstellen. Damals bei meinem alten VPS wollte ich schon ohne root arbeiten, doch da hatte ich dann eben einen Minecraft Server installiert, welcher dann auch nicht erreichbar war. Dann mit root installiert und alles war super. Es fehlt mir also eine kleine Konfiguration, welche man wohl immer vornehmen muss, wenn man als non-root Dinge wie einem Minecraft Server oder hauk zur Verfügung stellen will.

snaxilian schrieb:
Weil du bei der Minecraft Anleitung beim spannenden/relevanten Teil scheinbar nicht weiter gelesen hast was man da noch so macht sondern nur copy&paste gesehen hast ;)
Da wird nämlich eine systemd unit angelegt um den Minecraft automatisch zu starten. Das Starten dieser systemd unit wird von root übernommen aber die Anwendung an sich läuft dann unter dem zuvor angelegten Benutzer.

Praktisches Beispiel ohne Linux: Stell dir vor du hast ein Auto und der normale Fahrer (normaler User) darf alles außer Motor starten und darf nur auf freier Strecke fahren. Zusätzlich gibt es den Anlasser-Menschen (root) der das Auto auf die Strecke schiebt und den Anlasser betätigt und danach dem Fahrer das OK gibt. Wird das Auto dann während der Fahrt kompromittiert/beschädigt dann passiert nur dem Fahrer etwas aber nicht dem Anlasser-Menschen.

Ich verstehe, nettes Beispiel. Jedoch glaube ich, dass das kein Problem war. Damals war es nicht wirklich relevant, wer den Minecraft Server nun startet, da ich den ja als non-root manuell gestartet habe. Um einen automatischen Restart habe ich mir da noch keine Gedanken gemacht. Und wenn ich den MC Server als non-root starte, habe ich ja auch gesehen das alles lief. Er war also an, aber nicht erreichbar. Gestartet und installiert durch root war aber alles erreichbar.

Ich lese mich jetzt mal noch weiter ein. Vielleicht sehe ich den Wald auch vor lauter Bäumen nicht. Sitze nun seit paar Stunden am neuen Server, um alles rüber zu schieben, vielleicht war es auch etwas zu viel und ich kann gerade nur Fehler machen. Aber damals war es halt auch schon der Grund, warum ich wieder zu root gewechselt bin, weil eben nichts erreichbar war.

Ich bedanke mich bis hierhin erstmal für die Hilfe!
 
Bei Linux können zB SELinux oder vielleicht auch andere Mechanismen die Fähigkeiten von Programmen für systemcalls wie "bind()" oder "cap_net_bind_service" beeinflussen.

Dafür gibt es Logs - starten vom Daemon / Servern im Vordergrund, Debug-Optionen/Verbose-Levels ...
notfalls strace
 
Hauk benutzt java, php und noch ein paar lokale Sachen. Also kommt es hier im Grunde darauf an wie der Webserver deines VPS gestartet wird. Die meisten Tutorials gehen allerdings davon aus, dass du die Userfrage schon erledigt hast. In diesem Kontext also einen normalen User anlgelegt hast. Alle Installationen die root Rechte brauchen kann dieser User dann ausfühern, wenn du diese mit sudo ausführst.

Du musst das übrigens nicht selber machen, es gibt auch ServerVerwaltungsTools (plesk, cpanel, usw)...
 
nocie schrieb:
Okay. Nehmen wir das Beispiel
Nein, denn das ist ein schlechtes Beispiel und warum? Weil in diesem zweiten Beispiel nicht die Anwendung an sich gestartet wird und irgendwelche Ports benutzt sondern das macht der Webserver. Der unter System Requirements steht und sonst verliert dein Beispiel kein weiteres Wörtchen dazu.
Willst du jetzt so lange Beispiele suchen, bis du eins findest was auf deine Annahme passt und ignorierst alle vorherigen Funde?
Ansonsten musst bzw. solltest du unterscheiden zwischen dem Benutzer der administrative Tätigkeiten vornimmt und z.B. etwas installiert und irgendwelchen Benutzerkonten unter denen ein Dienst/Programm dann läuft.
 
@nocie Es hilft, wenn du uns mal alles deine Kommandos zeigst, mit welchen du z.B. Minecraft installierst. Damit meine ich alles Shell Kommandos auch: "ls, cd etc.".
 

Ähnliche Themen

Zurück
Oben