From 4ccdf7b9c1783e2b80000af92ba73c1bcf7cac01 Mon Sep 17 00:00:00 2001
From: ftimme <ft@falkotimme.com>
Date: Tue, 12 Feb 2013 09:01:43 -0500
Subject: [PATCH] - Fixed FS#2666 - Deletion of SSH users generates warning in cron log. - Fixed "usermod: user web25 is currently used by process 8106" error when a site is moved between clients.

---
 server/plugins-available/shelluser_base_plugin.inc.php    |    3 +--
 server/plugins-available/shelluser_jailkit_plugin.inc.php |    2 +-
 server/plugins-available/apache2_plugin.inc.php           |    8 ++++----
 server/plugins-available/nginx_plugin.inc.php             |    8 ++++----
 4 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 4e21c06..b982189 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -462,7 +462,7 @@
                 exec('chown --recursive --from='.escapeshellcmd($data['old']['system_user']).':'.escapeshellcmd($data['old']['system_group']).' '.escapeshellcmd($data['new']['system_user']).':'.escapeshellcmd($data['new']['system_group']).' '.$new_dir);
 
                 //* Change the home directory and group of the website user
-                $command = 'usermod';
+                $command = 'killall -u '.escapeshellcmd($data['new']['system_user']).' && usermod';
                 $command .= ' --home '.escapeshellcmd($data['new']['document_root']);
                 $command .= ' --gid '.escapeshellcmd($data['new']['system_group']);
                 $command .= ' '.escapeshellcmd($data['new']['system_user']);
@@ -699,7 +699,7 @@
 				}
 				
 				if($web_config['add_web_users_to_sshusers_group'] == 'y') {
-					$command = 'usermod';
+					$command = 'killall -u '.escapeshellcmd($data['new']['system_user']).' && usermod';
 					$command .= ' --groups sshusers';
 					$command .= ' '.escapeshellcmd($data['new']['system_user']);
 					$this->_exec($command);
@@ -1748,8 +1748,8 @@
             
             if($data['old']['type'] == 'vhost') {
                 //delete the web user
-                $command = 'userdel';
-                $command .= ' '.$data['old']['system_user'];
+                $command = 'killall -u '.escapeshellcmd($data['old']['system_user']).' && userdel';
+                $command .= ' '.escapeshellcmd($data['old']['system_user']);
                 exec($command);
                 if($apache_chrooted) $this->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' '.$command);
                 
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index fdc3d43..97359a1 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -466,7 +466,7 @@
 				exec('chown --recursive --from='.escapeshellcmd($data['old']['system_user']).':'.escapeshellcmd($data['old']['system_group']).' '.escapeshellcmd($data['new']['system_user']).':'.escapeshellcmd($data['new']['system_group']).' '.$new_dir);
 
 				//* Change the home directory and group of the website user
-				$command = 'usermod';
+				$command = 'killall -u '.escapeshellcmd($data['new']['system_user']).' && usermod';
 				$command .= ' --home '.escapeshellcmd($data['new']['document_root']);
 				$command .= ' --gid '.escapeshellcmd($data['new']['system_group']);
 				$command .= ' '.escapeshellcmd($data['new']['system_user']);
@@ -703,7 +703,7 @@
 				}
 				
 				if($web_config['add_web_users_to_sshusers_group'] == 'y') {
-					$command = 'usermod';
+					$command = 'killall -u '.escapeshellcmd($data['new']['system_user']).' && usermod';
 					$command .= ' --groups sshusers';
 					$command .= ' '.escapeshellcmd($data['new']['system_user']);
 					$this->_exec($command);
@@ -1817,8 +1817,8 @@
             
             if($data['old']['type'] == 'vhost') {
                 //delete the web user
-                $command = 'userdel';
-                $command .= ' '.$data['old']['system_user'];
+                $command = 'killall -u '.escapeshellcmd($data['old']['system_user']).' && userdel';
+                $command .= ' '.escapeshellcmd($data['old']['system_user']);
                 exec($command);
                 if($nginx_chrooted) $this->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' '.$command);
                 
diff --git a/server/plugins-available/shelluser_base_plugin.inc.php b/server/plugins-available/shelluser_base_plugin.inc.php
index 48e2cde..6b4e18f 100755
--- a/server/plugins-available/shelluser_base_plugin.inc.php
+++ b/server/plugins-available/shelluser_base_plugin.inc.php
@@ -204,8 +204,7 @@
 				// We delete only non jailkit users, jailkit users will be deleted by the jailkit plugin.
 				if ($data['old']['chroot'] != "jailkit") {
 					$command = 'userdel -f';
-					$command .= ' '.escapeshellcmd($data['old']['username']);
-			
+					$command .= ' '.escapeshellcmd($data['old']['username']).' &> /dev/null';
 					exec($command);
 					$app->log("Deleted shelluser: ".$data['old']['username'],LOGLEVEL_DEBUG);
 				}
diff --git a/server/plugins-available/shelluser_jailkit_plugin.inc.php b/server/plugins-available/shelluser_jailkit_plugin.inc.php
index c465b71..b0a457d 100755
--- a/server/plugins-available/shelluser_jailkit_plugin.inc.php
+++ b/server/plugins-available/shelluser_jailkit_plugin.inc.php
@@ -188,7 +188,7 @@
 			
 			if(@is_dir($data['old']['dir'].$jailkit_chroot_userhome)) {
 				$command = 'userdel -f';
-				$command .= ' '.escapeshellcmd($data['old']['username']);
+				$command .= ' '.escapeshellcmd($data['old']['username']).' &> /dev/null';
 				exec($command);
 				$app->log("Jailkit Plugin -> delete chroot home:".$data['old']['dir'].$jailkit_chroot_userhome,LOGLEVEL_DEBUG);
 			}

--
Gitblit v1.9.1