der Henry: Linux Apache2, user/group

Hallo,

ich habe unter Linux einen Apache2 Webserver laufen. Der Apache läuft unter wwwrun:www (user/group)

Zusätzlich habe ich noch eine Gruppe wwwrun, woher kommt die Gruppe wwwrun ??

Ich möchte meinem Webserver dynamische Daten selbst erzeugen und bereitstellen lassen. Daher starte ich mein Programm mit "sudo -u wwwrun programmname"

Die Dateien die mein Programm erzeugt werden aber unter user/group wwwrun:wwwrun angelegt, nicht mit wwwrun:www. Warum ??

Ein "sudo -u wwwrun -g www scriptname" .... "DARF NICHT AUSGEFÜHRT WERDEN"

Wenn ich mein Programm mit meinem Benutzernamen ausführe, wird automatisch als Gruppe "users" benutzt. Warum also nicht bei wwwrun -> Gruppe www ???

Das meine erzeugten Dateien unter wwwrun:wwwrun user/group liegen, ist kein größeres Problem, mich würde nur interessieren, war das so ist bzw. kann ich es, ohne manuellen Eingriff z.B. chown, lösen ?

Danke

  1. Der Apache läuft unter wwwrun:www

    Du hast ohne das erforderliche Wissen an Deinem System gefummelt und wahrscheinlich noch viel mehr Probleme verursacht als Du hier zeigst. Einige der durch Dein Vorgehen verursachten Probleme sind Dir wahrscheinlich noch nicht mal aufgefallen.

    Zusätzlich habe ich noch eine Gruppe wwwrun, woher kommt die Gruppe wwwrun

    Offenbar verwendest Du eine Linux-Distribution, die für den user „wwwrun“ eine Gruppe „wwwrun“ mit anlegt und diese Gruppe zur Standardgruppe des Users „wwwrun“ macht.

    Über diese Gruppe werden Zugriffsrechte gesteuert, z.B. auf Logfiles. Eine Änderung des Users und der Gruppe in der Apache-Konfiguration zieht einen ganzen Rattenschwanz von Änderungen nach sich. z.b. in der Konfiguration von logrotate nach sich. Der einfache Weg ist es, hier die Einstellungen des Distributors zu belassen. Sonst muss man einfach mehr über sein Linux wissen.

    Wenn ich mein Programm mit meinem Benutzernamen ausführe, wird automatisch als Gruppe "users" benutzt.

    Offenbar also ein suse-Linux oder sowas. Das ist dann Deine Standardgruppe. Das man sein Linux und die Version bei solchen Fragen benennt sollte eigentlich auch klar sein.

    Ein "sudo -u wwwrun -g www scriptname" .... "DARF NICHT AUSGEFÜHRT WERDEN"

    Du kannst Dein System komplett kaputt machen wenn Du jetzt noch an /etc/sudoers herumspielst und die Datei bei dem versuch, dass zu erlauben, zerschießt.

    Der root darf das übrigens. Der darf ALLES. Ob er es kann hängt dann aber davon ab, ob er weiß, wie er sein Ziel erreicht…

    Das meine erzeugten Dateien unter wwwrun:wwwrun user/group liegen, ist kein größeres Problem, mich würde nur interessieren, war das so ist bzw. kann ich es, ohne manuellen Eingriff z.B. chown, lösen ?

    Das Lösen eines Problems beginnt stets damit, es so zu beschreiben, dass auch ein Dritter das Problem erkennen kann. Hat man die Beschreibung kann man nach der Ursache suchen oder fragen und dann (hoffentlich) eine Lösung finden. Ich lese nur, es sei "kein größeres Problem". Das ist eine Aussage ohne brauchbare Information.

    Beginne einfach damit die originale Konfiguration wieder zu benutzen und setze die Rechte für Dein webroot so, dass neben dem Webserver auch Du dort lesen und schreiben darfst.

    chmod, setfacl, getfacl und umask sind Deine Freunde. chown geht auch, dann sollte Dich der Root aber auch zum Mitglied der Gruppe wwwrun machen.