Hi Till,
bin heute über folgendes gestolpert:
Ein Kunde wollte viele seiner Shell User von Chrooted auf None ändern.
dafür muss der minütliche ISPConfig Cron Job ein "usermod" ausführen.
Dieses usermod schlägt fehl, wenn der User eingeloggt ist und/oder eine Prozess mit seiner UID läuft. Siehe auch "man usermod".
Ist ja prinzipiell OK, aber jetzt existieren ständig php cgi Prozesse mit der UID des web Users (webXX), die die selbe ist, wie die des Shell Users (username). Somit findet die Änderung des Shell Users nicht statt.
Was irgendwie doof ist, da der webXX User in dem Fall keine Interferenz mit dem Home des zu ändernden Shell Users hat.
Das ist das Eine.
Das Andere ist, kann es sein, dass das usermod nur einmalig ausgeführt wird, egal ob fehlerhaft oder nicht?
Ich würde behaupten, die User werden nie geändert, wen der usermod einmalig fehl schlug. Aber im Webinterface wird die Änderung fälschlicherweise angezeigt.
Nur ein Resync Shell USer als admin triggert den usermod wieder.
Im o.g. Fall habe ich im End (holzhammer-mässig) kurz bevor der Cron Job anläuft ein Apache Restart ausgelöst, damit wenigstens für ein paar Sekunden die PHP CGI Prozesse der betroffenen User weg sind.
Aber das kanns doch nicht wirklich sein, zumal das auch ein paar Anläufe gebraucht hat, bis das Dutzend Shell User mal geändert war.
Grüße,
Matthias
bin heute über folgendes gestolpert:
Ein Kunde wollte viele seiner Shell User von Chrooted auf None ändern.
dafür muss der minütliche ISPConfig Cron Job ein "usermod" ausführen.
Dieses usermod schlägt fehl, wenn der User eingeloggt ist und/oder eine Prozess mit seiner UID läuft. Siehe auch "man usermod".
Ist ja prinzipiell OK, aber jetzt existieren ständig php cgi Prozesse mit der UID des web Users (webXX), die die selbe ist, wie die des Shell Users (username). Somit findet die Änderung des Shell Users nicht statt.
Was irgendwie doof ist, da der webXX User in dem Fall keine Interferenz mit dem Home des zu ändernden Shell Users hat.
Das ist das Eine.
Das Andere ist, kann es sein, dass das usermod nur einmalig ausgeführt wird, egal ob fehlerhaft oder nicht?
Ich würde behaupten, die User werden nie geändert, wen der usermod einmalig fehl schlug. Aber im Webinterface wird die Änderung fälschlicherweise angezeigt.
Nur ein Resync Shell USer als admin triggert den usermod wieder.
Im o.g. Fall habe ich im End (holzhammer-mässig) kurz bevor der Cron Job anläuft ein Apache Restart ausgelöst, damit wenigstens für ein paar Sekunden die PHP CGI Prozesse der betroffenen User weg sind.
Aber das kanns doch nicht wirklich sein, zumal das auch ein paar Anläufe gebraucht hat, bis das Dutzend Shell User mal geändert war.
Grüße,
Matthias