From 0ab359e690cd69977bcdf0838ac5735cf73adcc1 Mon Sep 17 00:00:00 2001 From: Michael Hierweck <michael@hierweck.de> Date: Thu, 28 Aug 2014 12:40:35 +0200 Subject: [PATCH] Trying to make user/pac deletion more reliable... --- hsarback/src/de/hsadmin/mods/pac/PacProcessorFactory.java | 7 ++++++- hsarback/src/de/hsadmin/mods/user/UnixUserProcessorFactory.java | 6 +++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/hsarback/src/de/hsadmin/mods/pac/PacProcessorFactory.java b/hsarback/src/de/hsadmin/mods/pac/PacProcessorFactory.java index e809c1e..da54e59 100644 --- a/hsarback/src/de/hsadmin/mods/pac/PacProcessorFactory.java +++ b/hsarback/src/de/hsadmin/mods/pac/PacProcessorFactory.java @@ -162,7 +162,12 @@ } private Processor createDelUserProc(String pacName) { - return new ShellProcessor("rm -rf /home/pacs/" + pacName + "/* && deluser --remove-all-files " + pacName + ">/dev/null 2>&1"); + Processor killProcessesProc = new ShellProcessor("killall -TERM -u " + pacName + " && sleep 5 && killall -KILL -u " + pacName + " && sleep 5"); + Processor userdelProc = new ShellProcessor("deluser --remove-all-files " + pacName); + CompoundProcessor proc = new CompoundProcessor(killProcessesProc, userdelProc); + proc.appendProcessor(new ShellProcessor("rm -f '/var/spool/cron/crontabs/" + pacName + "'")); + proc.appendProcessor(new ShellProcessor("rm -f '/var/mail/" + pacName + "'")); + return proc; } private Processor createMakePacDirectoryStructure(UnixUser unixUser) { diff --git a/hsarback/src/de/hsadmin/mods/user/UnixUserProcessorFactory.java b/hsarback/src/de/hsadmin/mods/user/UnixUserProcessorFactory.java index 019e4d7..c02a765 100644 --- a/hsarback/src/de/hsadmin/mods/user/UnixUserProcessorFactory.java +++ b/hsarback/src/de/hsadmin/mods/user/UnixUserProcessorFactory.java @@ -56,12 +56,12 @@ UnixUser user = (UnixUser) entity; String uid = user.getName(); if (uid != null && uid.length() > 4) { - Processor killProcessesProc = new ShellProcessor("killall -u " + uid + " && sleep 2 || echo -n 'no processes'"); + Processor killProcessesProc = new ShellProcessor("killall -TERM -u " + uid + " && sleep 5 && killall -KILL -u " + uid + " && sleep 5"); Processor userdelProc = null; if (user.isDefaultHomedir()) { - userdelProc = new ShellProcessor("userdel " + uid + " && rm -rf '" + user.getHomedir() + "'"); + userdelProc = new ShellProcessor("deluser --remove-all-files " + uid); } else { - userdelProc = new ShellProcessor("userdel " + uid); + userdelProc = new ShellProcessor("deluser " + uid); } CompoundProcessor proc = new CompoundProcessor(killProcessesProc, userdelProc); proc.appendProcessor(new ShellProcessor("rm -f '/var/spool/cron/crontabs/" + uid + "'")); -- Gitblit v1.9.3