Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

[Gelöst] Wie geht ein sauberer Umgang mit einem lokalen Webserver und seinen Rechten?

Alles rund um die Server (Web-, Mail-, Datenbank-, Datenaustausch-, etc.) die man unter Linux betreiben kann

Moderator: Moderatoren

gorgonz
Hacker
Hacker
Beiträge: 292
Registriert: 13. Mai 2006, 19:37
Wohnort: Frankenland

[Gelöst] Wie geht ein sauberer Umgang mit einem lokalen Webserver und seinen Rechten?

Beitrag von gorgonz »

Das Problem ist hinlänglich bekannt:
- Webserver ist nur lokaler Entwicklungsserver
- Jedesmal, wenn ich etwas kompiliere oder Dateien editiere könnte ich das nur als root (wegen wwwrun:www)

Auch, wenn es nur ein Testserver ist, der auch nicht immer läuft, will ich keine 777 Rechte verwenden, die tatsächlich auch bei Updates der Web-SW oft rückgesetzt werden.

Eine Überlegung ist, vollkommen virtuell abzuschotten (VirtualBox), eine andere, ob da mit docker was zu machen ist?

Klar, am liebsten würde ich gerne direkt auf meinem System arbeiten können, aber wie? ;-).

Wie macht ihr das denn?
Zuletzt geändert von gorgonz am 12. Feb 2021, 21:03, insgesamt 1-mal geändert.
PC (I7-2600K): Leap 15.1, QT 5.9.7, Kernel 4.12.14-lp151.28.63-default
PC (Rizen 5 3600): Leap 15.3, QT 5.12.7, Kernel 5.3.18-59.19-default
Laptop: Samsung RC530 (I7-2670QM), Leap 15.3, QT 5.12.7, Kernel 5.3.18-59.19-default
Benutzeravatar
gehrke
Moderator
Moderator
Beiträge: 2423
Registriert: 10. Nov 2012, 11:00

Re: Wie geht ein sauberer Umgang mit einem lokalen Webserver und seinen Rechten?

Beitrag von gehrke »

gorgonz hat geschrieben: 9. Feb 2021, 23:43 Eine Überlegung ist, vollkommen virtuell abzuschotten (VirtualBox), eine andere, ob da mit docker was zu machen ist?
Ich geh mal nur auf diesen Aspekt ein, nicht auf die eigentliche Frage.

Selbstverständlich kannst Du hierfür eine VM benutzen, vorzugsweise IMHO mit KVM.
Und ja: genau dafür wurde Docker gemacht, und das wäre auch meine Empfehlung. Erfordert allerdings einiges an Einarbeitung, was IMHO aber gut investiert ist.
Keinen Bock mehr auf zentralisierte soziale Netzwerke von US-Konzernen?
https://www.kuketz-blog.de/das-fedivers ... nteressen/ (Join the fediverse: Friendica, Mastodon, Diaspora und vieles mehr)
marce
Advanced Hacker
Advanced Hacker
Beiträge: 1383
Registriert: 19. Jun 2008, 13:16
Wohnort: Dettenhausen
Kontaktdaten:

Re: Wie geht ein sauberer Umgang mit einem lokalen Webserver und seinen Rechten?

Beitrag von marce »

die meisten klassischen Problem lassen sich auch recht einfach über Dateirechte und die entsprechende Server-Konfig lösen (Dateien müssen ja nicht unterhalb von /var/www u.ä. liegen, "wo nur root schreiben darf"

...zudem muss der Webserver ja nicht unter einem Systemuser laufen.

Möglichkeiten gibt es viele - es kommt auch sehr auf die jeweilige Umgebung (Server-Software, ggf. Programmiersprache, ...) an, ob das nur 'ne Spielwiese ist oder in irgendeiner Art einem prod. System entsprechen sollte, ...
gorgonz
Hacker
Hacker
Beiträge: 292
Registriert: 13. Mai 2006, 19:37
Wohnort: Frankenland

Re: Wie geht ein sauberer Umgang mit einem lokalen Webserver und seinen Rechten?

Beitrag von gorgonz »

erstmal vielen Dank für eure Ideen :-)

@gehrke: Ja, das mit docker scheint mir auch ein guter Ansatz zu sein, gerade da es mir ermöglichen würde Tests mit verschiedenen PHP Versionen auf dem gleichen System zu machen. Ich bin da noch nicht gut eingearbeitet, aber hatte schon so viel Wissen, dass in XML Dateien gewünschte Konfigurationen aus Paketen zusammengestellt werden können. Unklar ist mir allerdings, wie ich docker in rechtetechnischer Hinsicht nutzen könnte. Kannst Du dazu noch etwas schreiben?

@marce: Hmm, bin nicht sicher, ob ich den Ansatz verstehe. Es gibt irgendwo die Möglichkeit, das Root-Verzeichnis für die Webserveranwendungen umzustellen. Für mich am einfachsten wäre es natürlich, htdocs in meinem Home-Verzeichnis zu platzieren. Das erzeugt weitere Fragen. Ich arbeite viel mit Joomla, welches bisher die Rechte immer auf wwwrun:www setzt. Ist das dann anders im Home-Verzeichnis von mir?

Noch generell: Es geht um einen PC, auf dem ich arbeite und dort einen lökalen Webserver betreibe, der ausschließlich der lokalen Entwicklung von SW (PHP, JS) dient.
PC (I7-2600K): Leap 15.1, QT 5.9.7, Kernel 4.12.14-lp151.28.63-default
PC (Rizen 5 3600): Leap 15.3, QT 5.12.7, Kernel 5.3.18-59.19-default
Laptop: Samsung RC530 (I7-2670QM), Leap 15.3, QT 5.12.7, Kernel 5.3.18-59.19-default
marce
Advanced Hacker
Advanced Hacker
Beiträge: 1383
Registriert: 19. Jun 2008, 13:16
Wohnort: Dettenhausen
Kontaktdaten:

Re: Wie geht ein sauberer Umgang mit einem lokalen Webserver und seinen Rechten?

Beitrag von marce »

https://httpd.apache.org/docs/2.4/howto ... _html.html
https://httpd.apache.org/docs/2.4/de/mo ... cumentroot
https://httpd.apache.org/docs/2.4/mod/m ... .html#user
https://httpd.apache.org/docs/2.4/programs/httpd.html

zudem nehmen die meisten Installer den User / Group, unter dem der Webserver läuft. Den kannst Du auch als "dein User" starten - musst dann ggf. aber (zumindest ohne kleine Hacks drumherum) auf Ports < 1024 verzichten. Stört aber nicht, ggf. kann man das ja Proxien.

Mit php-fpm könntest Du eh für jeden VHost hinterlegen, unter welchem User die laufen sollen.

Ob man sicher Docker geben will oder nicht - überlasse ich jedem selbst. Wenn's mal läuft und man alle Fallstricke davon verstanden hat kann man sich das Leben einfacher machen damit. Man kommt aber auch sehr gut ohne aus.
Benutzeravatar
gehrke
Moderator
Moderator
Beiträge: 2423
Registriert: 10. Nov 2012, 11:00

Re: Wie geht ein sauberer Umgang mit einem lokalen Webserver und seinen Rechten?

Beitrag von gehrke »

gorgonz hat geschrieben: 10. Feb 2021, 19:08 Unklar ist mir allerdings, wie ich docker in rechtetechnischer Hinsicht nutzen könnte. Kannst Du dazu noch etwas schreiben?
[...]
Noch generell: Es geht um einen PC, auf dem ich arbeite und dort einen lökalen Webserver betreibe, der ausschließlich der lokalen Entwicklung von SW (PHP, JS) dient.
Ich denke, die meisten Leute machen sich in einer solch reinen Development-Environment keine Gedanken und lassen dockerd mit root-Rechten laufen.

Spätestens bei einem öffentlich verfügbarem System muss man mehr tun. Es gibt aber hierzu diverse Stellen im Netz, wo Du die Maßnahmen recherchieren kannst.
Beginne vielleicht deine Suche mit diesem Pattern: docker without root permissions
Keinen Bock mehr auf zentralisierte soziale Netzwerke von US-Konzernen?
https://www.kuketz-blog.de/das-fedivers ... nteressen/ (Join the fediverse: Friendica, Mastodon, Diaspora und vieles mehr)
gorgonz
Hacker
Hacker
Beiträge: 292
Registriert: 13. Mai 2006, 19:37
Wohnort: Frankenland

Re: Wie geht ein sauberer Umgang mit einem lokalen Webserver und seinen Rechten?

Beitrag von gorgonz »

Wow, das sind coole Vorschläge. Vielleicht kann ich sogar das Beste aus beiden Welten erreichen, einerseits UserDir, andererseits docker - dann ohne root :-)

Heißen Dank dafür :thumbs:

Heute mach ich nix mehr damit, ist aber für morgen vorgemerkt :-)
PC (I7-2600K): Leap 15.1, QT 5.9.7, Kernel 4.12.14-lp151.28.63-default
PC (Rizen 5 3600): Leap 15.3, QT 5.12.7, Kernel 5.3.18-59.19-default
Laptop: Samsung RC530 (I7-2670QM), Leap 15.3, QT 5.12.7, Kernel 5.3.18-59.19-default
gorgonz
Hacker
Hacker
Beiträge: 292
Registriert: 13. Mai 2006, 19:37
Wohnort: Frankenland

Re: Wie geht ein sauberer Umgang mit einem lokalen Webserver und seinen Rechten?

Beitrag von gorgonz »

Also, der momentane Stand für mich ist so:
- eure Hinweise sind gut und ich denke, das hat meine Frage beantwortet
- leider ist ein ganz anderes Problem, dass es mir nicht gelingt den dockerd zu starten

Ich werde da noch mehr googeln und ansonsten einen neuen Thread aufmachen <seufz />
PC (I7-2600K): Leap 15.1, QT 5.9.7, Kernel 4.12.14-lp151.28.63-default
PC (Rizen 5 3600): Leap 15.3, QT 5.12.7, Kernel 5.3.18-59.19-default
Laptop: Samsung RC530 (I7-2670QM), Leap 15.3, QT 5.12.7, Kernel 5.3.18-59.19-default
spoensche
Moderator
Moderator
Beiträge: 7587
Registriert: 30. Okt 2004, 23:53
Wohnort: Siegen

Re: [gelöst] Wie geht ein sauberer Umgang mit einem lokalen Webserver und seinen Rechten?

Beitrag von spoensche »

Man kann es bei diesen Aufgaben auch mit einer VM und Docker übertreiben.

Podman kann auch als normaler User Container starten. Für das Container Netzwerk ist dann slirp4netns (Usermode Networking) notwendig, weil ein normaler User keine Netzwerk Devices anlegen darf.

Podman kann auch aus Dockerfiles oder Dockerswarm Konfigurationen Container erstellen.
Das ist die einfachste und sicherere Lösung als einen zusätzlichen Dienst der unnötigerweise mit root Rechten läuft.

Da brauchts keinen Docker Daemon der mit root Berechtigungen läuft.
gorgonz
Hacker
Hacker
Beiträge: 292
Registriert: 13. Mai 2006, 19:37
Wohnort: Frankenland

Re: [Gelöst] Wie geht ein sauberer Umgang mit einem lokalen Webserver und seinen Rechten?

Beitrag von gorgonz »

ahh, da haben wir uns überlappt, spoensche. Hatte noch einen Versuch gestartet, indem ich yast2-docker installiert habe
=> jetzt bin ich beruhigt, auch yast2 kann docker nicht starten :lol:
podman schon mal installiert, muss aber lesen, wie der jetzt verwendet - und vor allem konfiguriert - wird ;)
PC (I7-2600K): Leap 15.1, QT 5.9.7, Kernel 4.12.14-lp151.28.63-default
PC (Rizen 5 3600): Leap 15.3, QT 5.12.7, Kernel 5.3.18-59.19-default
Laptop: Samsung RC530 (I7-2670QM), Leap 15.3, QT 5.12.7, Kernel 5.3.18-59.19-default
gorgonz
Hacker
Hacker
Beiträge: 292
Registriert: 13. Mai 2006, 19:37
Wohnort: Frankenland

Re: [Gelöst] Wie geht ein sauberer Umgang mit einem lokalen Webserver und seinen Rechten?

Beitrag von gorgonz »

@spoensche: vielen Dank für den Hinweis :-). Mit podman kann ich schon mal container laden und starten, was mir mit docker nicht gelungen war :thumbs: . Alles andere zu meinem ursprünglichen Ansinnen muss ich jetzt erstmal in Ruhe angehen ;)
PC (I7-2600K): Leap 15.1, QT 5.9.7, Kernel 4.12.14-lp151.28.63-default
PC (Rizen 5 3600): Leap 15.3, QT 5.12.7, Kernel 5.3.18-59.19-default
Laptop: Samsung RC530 (I7-2670QM), Leap 15.3, QT 5.12.7, Kernel 5.3.18-59.19-default
Benutzeravatar
gehrke
Moderator
Moderator
Beiträge: 2423
Registriert: 10. Nov 2012, 11:00

Re: [gelöst] Wie geht ein sauberer Umgang mit einem lokalen Webserver und seinen Rechten?

Beitrag von gehrke »

Ich möchte meine Empfehlung konkretisieren.
gehrke hat geschrieben: 10. Feb 2021, 06:16
gorgonz hat geschrieben: 9. Feb 2021, 23:43 Eine Überlegung ist, vollkommen virtuell abzuschotten (VirtualBox), eine andere, ob da mit docker was zu machen ist?
Und ja: genau dafür wurde Docker gemacht, und das wäre auch meine Empfehlung.
spoensche hat geschrieben: 12. Feb 2021, 21:14 Podman kann auch als normaler User Container starten.
Ich habe mich konkret auf Docker bezogen, weil das namentlich vom TE in die Runde geworfen wurde - in Abgrenzung zum Arbeiten auf dem lokalen Host oder zur vollwertigen Virtualisierung wie VirtualBox oder KVM.

Meine Empfehlung bezieht sich weniger auf Docker selbst, als mehr auf die dadurch implementierte Technologie: Container-Virtualisierung.

Da ist Docker noch immer der bekannteste Name, aber sicher gibt es heute auch Alternativen. Wenn man diesen Weg gehen möchte, muss man sich irgendwann mit den Vor- und Nachteilen der einzelnen Container-Lösungen und deren daran hängendem Umfeld auseinandersetzen und eine Entscheidung treffen. Wie immer gibt es Vor- und Nachteile für alles, aber eine größere Einarbeitungsphase muss man wohl in jedem Fall einplanen, denn es handelt sich um ein vollständig anderes Grundprinzip.

Aber grundsätzlich halte ich Container-Virtualisierung für einen sehr wichtigen Baustein und mir scheint Dein Anwendungsfall durchaus geeignet.

Und nein: Das bedeutet nicht, dass ich von Docker abrate.
Keinen Bock mehr auf zentralisierte soziale Netzwerke von US-Konzernen?
https://www.kuketz-blog.de/das-fedivers ... nteressen/ (Join the fediverse: Friendica, Mastodon, Diaspora und vieles mehr)
Gräfin Klara
Hacker
Hacker
Beiträge: 667
Registriert: 23. Jun 2008, 20:51

Re: [gelöst] Wie geht ein sauberer Umgang mit einem lokalen Webserver und seinen Rechten?

Beitrag von Gräfin Klara »

gehrke hat geschrieben: 13. Feb 2021, 08:12 ..
Da ist Docker noch immer der bekannteste Name, aber sicher gibt es heute auch Alternativen. Wenn man diesen Weg gehen möchte, muss man sich irgendwann mit den Vor- und Nachteilen der einzelnen Container-Lösungen und deren daran hängendem Umfeld auseinandersetzen und eine Entscheidung treffen...
Nur für dich
Bezeichnungen wie "Container" oder "Container-Virtualisierung" solltest du aus deinem Kopf streichen.
Diese Ausdrücke schaffen nur Verwirrung und stellen sich dem Verstehen der eigentlichen Vorgänge in den Weg.
Wahrscheinlich wurde der "Container" von den Docker-Programmierern erfunden, um ihre Arbeit zu rechtfertigen.
Docker ist eine völlig überladene Applikation, die nichts anderes tut als sowieso vorhandene Kernel Funktionalitäten zu Konfigurieren.
In Wahrheit könnte man Docker mit ca.20 Zeilen Bash nachbilden, wenn man versteht was da vor sich geht.

Gruß
Gräfin Klara
Benutzeravatar
gehrke
Moderator
Moderator
Beiträge: 2423
Registriert: 10. Nov 2012, 11:00

Re: [gelöst] Wie geht ein sauberer Umgang mit einem lokalen Webserver und seinen Rechten?

Beitrag von gehrke »

Gräfin Klara hat geschrieben: 13. Feb 2021, 12:07 Nur für dich
Bezeichnungen wie "Container" oder "Container-Virtualisierung" solltest du aus deinem Kopf streichen.
Ich denke nicht, dass ich der einzige bin, der diesen Begriff verwendet.
Gräfin Klara hat geschrieben: 13. Feb 2021, 12:07 In Wahrheit könnte man Docker mit ca.20 Zeilen Bash nachbilden, wenn man versteht was da vor sich geht.
Interessante Aussage. Das kannst Du ja gerne mal in einem eigenen Thread demonstrieren. 20 Zeilen gibt das Code-Tag ja her.
Keinen Bock mehr auf zentralisierte soziale Netzwerke von US-Konzernen?
https://www.kuketz-blog.de/das-fedivers ... nteressen/ (Join the fediverse: Friendica, Mastodon, Diaspora und vieles mehr)
marce
Advanced Hacker
Advanced Hacker
Beiträge: 1383
Registriert: 19. Jun 2008, 13:16
Wohnort: Dettenhausen
Kontaktdaten:

Re: [Gelöst] Wie geht ein sauberer Umgang mit einem lokalen Webserver und seinen Rechten?

Beitrag von marce »

ja, das würde mich auch interessieren...
gorgonz
Hacker
Hacker
Beiträge: 292
Registriert: 13. Mai 2006, 19:37
Wohnort: Frankenland

Re: [Gelöst] Wie geht ein sauberer Umgang mit einem lokalen Webserver und seinen Rechten?

Beitrag von gorgonz »

Das macht sogar mich neugierig, obwohl ich noch gar nicht so tief drin stecke. Vielleicht verstehe ich dann auch besser, wie das mit den mehreren Instanzen gemacht wird. Ich habe zwar schon darüber gelesen, dass die "Parallelisierung" über verschiedene Namespaces gemacht wird, aber steh da noch im Wald ;-)
PC (I7-2600K): Leap 15.1, QT 5.9.7, Kernel 4.12.14-lp151.28.63-default
PC (Rizen 5 3600): Leap 15.3, QT 5.12.7, Kernel 5.3.18-59.19-default
Laptop: Samsung RC530 (I7-2670QM), Leap 15.3, QT 5.12.7, Kernel 5.3.18-59.19-default
Gräfin Klara
Hacker
Hacker
Beiträge: 667
Registriert: 23. Jun 2008, 20:51

Re: [gelöst] Wie geht ein sauberer Umgang mit einem lokalen Webserver und seinen Rechten?

Beitrag von Gräfin Klara »

gehrke hat geschrieben: 13. Feb 2021, 13:44 Interessante Aussage. Das kannst Du ja gerne mal in einem eigenen Thread demonstrieren. 20 Zeilen gibt das Code-Tag ja her.
Das script würde niemand verstehen.
Ohne Erklärungen und Beipiele wäre das wertlos
gorgonz
Hacker
Hacker
Beiträge: 292
Registriert: 13. Mai 2006, 19:37
Wohnort: Frankenland

Re: [Gelöst] Wie geht ein sauberer Umgang mit einem lokalen Webserver und seinen Rechten?

Beitrag von gorgonz »

Das Skript selbst ist mir gar nicht so wichtig, aber vielleicht kannst Du beschreiben, wie das "Multi-Instanzieren" vom Prinzip her gemacht wird. So ist mir immer noch unklar, wie ich zB ein PHP7 im System habe und über diesen Mechanismus aber ein PHP8 laufen lasse ;-)
PC (I7-2600K): Leap 15.1, QT 5.9.7, Kernel 4.12.14-lp151.28.63-default
PC (Rizen 5 3600): Leap 15.3, QT 5.12.7, Kernel 5.3.18-59.19-default
Laptop: Samsung RC530 (I7-2670QM), Leap 15.3, QT 5.12.7, Kernel 5.3.18-59.19-default
Gräfin Klara
Hacker
Hacker
Beiträge: 667
Registriert: 23. Jun 2008, 20:51

Re: [Gelöst] Wie geht ein sauberer Umgang mit einem lokalen Webserver und seinen Rechten?

Beitrag von Gräfin Klara »

gorgonz hat geschrieben: 14. Feb 2021, 23:44 ... gelesen, dass die "Parallelisierung" über verschiedene Namespaces ....
Das zeigt schon in die richtige Richtung. Die Bezeichnung lautet exakt "Network Namespace"
gorgonz hat geschrieben: 14. Feb 2021, 23:44 .. So ist mir immer noch unklar, wie ich zB ein PHP7 im System habe und über diesen Mechanismus aber ein PHP8 laufen lasse ;-)
Was du suchst ist "processes isolation" oder "processes separation" mit network namespaces.
Obwohl einfach realisierbar weil vom kernel unterstützt, ist das Thema viel zu komplex um es hier zu beschreiben.
Schau nach unter iproute2 und Befehle wie

Code: Alles auswählen

# ip netns add my_namespace
# ip netns show
sowie virtual devices (meine Empfehlung für dein Vorhaben wäre VETH), policy routing und routing rules.
Damit stimmt die Richtung

Gruß
Gräfin Klara
gorgonz
Hacker
Hacker
Beiträge: 292
Registriert: 13. Mai 2006, 19:37
Wohnort: Frankenland

Re: [Gelöst] Wie geht ein sauberer Umgang mit einem lokalen Webserver und seinen Rechten?

Beitrag von gorgonz »

@Gräfin Klara: Hey, das war sehr hilfreich mit den Stichworten, danke Dir :-). Gerade die Artikelserie vom Linux-Magazin war sehr anschaulich und verständlich. Versehe jetzt auch besser, warum Du denkst, dass das auch in einer bash hingeschrieben werden kann.

Ist eigentlich eine super Geschichte. Ist voll an mir vorbei gegangen und schon so alt
PC (I7-2600K): Leap 15.1, QT 5.9.7, Kernel 4.12.14-lp151.28.63-default
PC (Rizen 5 3600): Leap 15.3, QT 5.12.7, Kernel 5.3.18-59.19-default
Laptop: Samsung RC530 (I7-2670QM), Leap 15.3, QT 5.12.7, Kernel 5.3.18-59.19-default
Antworten