Fehler beim Löschen von Verträgen

  • Moin moin,


    mir ist heute aufgefallen, dass aktuell die Verzeichnisse /var/www/[VERTRAG] nicht mehr automatisch gelöscht werden, wenn der Vertrag gelöscht wird.


    Ich habe einen Beitrag gefunden, dass das Problem offensichtlich schonmal bei Version 1.5.3 (r1932) bestanden hat. Ich nutze die aktuelle 1.6.3-r2383 und habe das selbe Problem.


    Jemand eine Idee dazu? Verwendetes OS ist CloudLinux.

  • Was steht in /var/log/liveconfig/liveconfig.log rund um den Löschzeitpunkt?
    Bei einem Multi-Server-Setup: was steht zusätzlich in /var/log/liveconfig/lcclient.log auf dem Slave?
    Sind gar keine Dateien gelöscht, oder bleiben nur einzelne Dateien übrig?
    Ist SELinux aktiviert?

  • Was steht in /var/log/liveconfig/liveconfig.log rund um den Löschzeitpunkt?


    Code
    [2013/07/08 13:56:43.864336] [1518|1524] Deleting subscription 'VERTRAG' (all objects deleted successfully)


    Bei einem Multi-Server-Setup: was steht zusätzlich in /var/log/liveconfig/lcclient.log auf dem Slave?


    Code
    [2013/07/08 13:56:12.419126] [109119|109121] [LUA] Adding system account 'VERTRAG'
    [2013/07/08 13:56:43.872754] [109119|109121] [LUA] Deleting system account 'VERTRAG'


    Habe den Account nur testweise angelegt, deshalb das Löschen direkt nach dem Anlegen. Ansonsten steht da leider nichts weiter. Könnte das Debugging hier weiterhelfen?


    Sind gar keine Dateien gelöscht, oder bleiben nur einzelne Dateien übrig?


    Guter Punkt. Offensichtlich bleibt nur das Verzeichnis .cagefs (Bestandteil von CloudLinux) bestehen, allerdings leer. Muss dieses evtl. noch zusätzlich berücksichtigt werden bei der Löschung?


    Ist SELinux aktiviert?


    Nein ;)

  • Nehme an das es an "CloudLinux" liegt. Eine offizielle unterstützung von LiveConfig gibt es hierzu meines wissens nicht daher wird LC die eigenheiten von CloudLinux derzeit auch noch nicht berücksichtigen..

    - LiveConfig 1.6.0-r2052 (Inaktiv) :: BETA: 1.6.1 - r2142 (Inaktiv)
    [HR][/HR] - CentOS 6.3 x64[HR][/HR]- Apache 2.2.15 - PHP 5.4.12* - mod_suphp 0.7.1** - MySQL 5.5.30*
    - Postfix 2.6.6 - dovecot 2.0.9 - Clamd 0.97.6** - clamav-milter 0.97.6**- postgrey 1.34**
    - vsFTPd 2.2.2 - AWStats 7.0**
    * Aus dem REMI-Repository :: ** Aus dem rpmforge-Repository

  • Jepp, da wir hier derzeit keine CloudLinux-Testumgebung haben, wird Letzteres auch noch nicht offiziell unterstützt.
    Ich tippe mal darauf, dass das .cagefs-Verzeichnis entweder durch ein Kernelmodul von CloudLinux erzeugt wird, oder dass es irgendwelche erweiterten Attribute besitzt die eine Löschung verhindern.
    Was liefert denn "lsattr /var/www/VERTRAG"?

  • Nehme an das es an "CloudLinux" liegt. Eine offizielle unterstützung von LiveConfig gibt es hierzu meines wissens nicht daher wird LC die eigenheiten von CloudLinux derzeit auch noch nicht berücksichtigen..


    Dass es an CloudLinux liegt ist ja offensichtlich. Wer sagt denn, dass ich offizielle Unterstützung von LiveConfig beanspruchen möchte? Ich dachte, öffentliche Support-Foren seien unter anderem für den Austausch von Erfahrungswerten unter Kunden gedacht... ;)



    Zur Frage von Herrn Keppler:


    Code
    lsattr -a /var/www/VERTRAG/
    -------------e- /var/www/VERTRAG/..
    -------------e- /var/www/VERTRAG/.cagefs
    -------------e- /var/www/VERTRAG/.



    Auf welche Art und Weise wird das Vertrags-Verzeichnis denn gelöscht? Ja Richtig, das .cagefs wird durch CloudLinux erzeugt, um jedem Systembenutzer sein eigenes virtuelles Dateisystem zu liefern. Es lässt sich allerdings ganz normal manuell löschen, die Frage ist halt nur, ob man LiveConfig dieses Verzeichnis ggf. an irgendeiner Stelle noch als weiteres zu löschendes Verzeichnis anlegt oder wo es haken könnte.

  • Auf welche Art und Weise wird das Vertrags-Verzeichnis denn gelöscht? Ja Richtig, das .cagefs wird durch CloudLinux erzeugt, um jedem Systembenutzer sein eigenes virtuelles Dateisystem zu liefern. Es lässt sich allerdings ganz normal manuell löschen, die Frage ist halt nur, ob man LiveConfig dieses Verzeichnis ggf. an irgendeiner Stelle noch als weiteres zu löschendes Verzeichnis anlegt oder wo es haken könnte.


    Was LiveConfig macht kann man in /usr/lib/liveconfig/lua/web.lua, Funktion "deleteAccount()", ca. Zeile 438 sehen:

    Code
    os.execute("rm -rf " .. home)


    D.h. es wird mit root-Rechten schlicht ein "rm -rf /var/www/web123" ausgeführt. Warum .cagefs dann übrig bleibt, ist mir auch schleierhaft - ich habe mich aber bislang nur recht oberflächlich mit CloudLinux beschäftigt.


    Viele Grüße


    -Klaus Keppler

  • Schon komisch, weil mit exakt dem selben Befehl habe ich als root ja auch den Vertrag löschen können. Naja wie auch immer, es bleiben ja keine (sensiblen) Kundendaten zurück und ich kann erstmal damit leben. Sollte noch jemandem etwas zu dem Thema einfallen, bin ich jederzeit für gute Ideen empfänglich ;)

  • An guten Ideen mangelt es zum Glück nicht :)
    Lassen Sie LiveConfig mal im Vordergrund laufen, während Sie einen Vertrag löschen (also erst "/etc/init.d/liveconfig stop", danach "liveconfig -f"). Sollte es während dem "rm -rf ..." eine Fehlermeldung auf STDERR geben, dann müsste diese auf der Konsole angezeigt werden. (Wenn ich mich richtig erinnere haben wir schon irgendwo auf der ToDo-Liste stehen, alle STDERR-Ausgaben künftig direkt ins LiveConfig-Log zu schreiben.)


    So oder so *kann* es aber sein, dass es schlicht von LiveConfig aus nicht funktioniert, da der Prozess in einem anderen Kontext läuft als ein direkt von "root" ausgeführtes Programm.


    Viele Grüße


    -Klaus Keppler

  • Das Ergebnis sieht eher dürftig aus:


  • Versuchen Sie mal, vor dem Löschen eines Vertrags auf dem Server erst noch CageFS für den betroffenen Benutzer zu deaktivieren, z.B. so:

    Code
    /usr/sbin/cagefsctl --disable test123


    Prüfen Sie dann, ob das .cagefs-Verzeichnis damit verschwindet. (Quelle)


    Falls das so klappt, können wir das gerne mit in LC aufnehmen.

  • Nein das funktioniert leider auch nicht. Das (leere) .cagefs-Verzeichnis bleibt auch nach einer Deaktivierung des Features bestehen, beim Löschen des Vertrages bleibt das Verzeichnis. Was ich nach wie vor nicht nachvollziehen kann ist die Tatsache, dass ich als root das Verzeichnis /var/www/test123 problemlos löschen kann - wenn LiveConfig das gleiche macht, dürfte es ja eigentlich nicht zu einem anderen Ergebnis kommen.


    Mir ist übrigens gerade noch aufgefallen, dass der Eintrag für den Benutzer auch aus der /etc/logrotate.d/liveconfig nicht gelöscht wird. Nachdem ich das Verzeichnis /var/www/VERTRAG manuell gelöscht habe, ist der folgende Eintrag im lcclient.log erschienen:


    Code
    [LUA] Removing orphaned entry '/var/www/VERTRAG/logs/access.log' from logrotate configuration

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!