From 5edf400dad8684da363a643812f8d071d946edb6 Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Sat, 15 Feb 2014 10:25:16 +0100
Subject: [PATCH] Fixed: FS#3314 - User/group modification fsails on OpenSUSE
 12.x

---
 install/dist/lib/opensuse.lib.php  | 16 +++++++++++-----
 install/lib/installer_base.lib.php |  3 ++-
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php
index 462a69499..5c0af8ffa 100644
--- a/install/dist/lib/opensuse.lib.php
+++ b/install/dist/lib/opensuse.lib.php
@@ -529,7 +529,9 @@ class installer_dist extends installer_base {
 		unset($content);
 
 		// Add the clamav user to the vscan group
-		exec('groupmod --add-user clamav vscan');
+		//exec('groupmod --add-user clamav vscan');
+		$command = 'usermod -a -G clamav vscan';
+		caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 
 
 	}
@@ -1051,18 +1053,22 @@ class installer_dist extends installer_base {
 		// and must be fixed as this will allow the apache user to read the ispconfig files.
 		// Later this must run as own apache server or via suexec!
 		if($conf['apache']['installed'] == true){
-			$command = 'groupmod --add-user '.$conf['apache']['user'].' ispconfig';
+			//$command = 'groupmod --add-user '.$conf['apache']['user'].' ispconfig';
+			$command = 'usermod -a -G ispconfig '.$conf['apache']['user'];
 			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 			if(is_group('ispapps')){
-				$command = 'groupmod --add-user '.$conf['apache']['user'].' ispapps';
+				//$command = 'groupmod --add-user '.$conf['apache']['user'].' ispapps';
+				$command = 'usermod -a -G ispapps '.$conf['apache']['user'];
 				caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 			}
 		}
 		if($conf['nginx']['installed'] == true){
-			$command = 'groupmod --add-user '.$conf['nginx']['user'].' ispconfig';
+			//$command = 'groupmod --add-user '.$conf['nginx']['user'].' ispconfig';
+			 $command = 'usermod -a -G ispconfig '.$conf['nginx']['user'];
 			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 			if(is_group('ispapps')){
-				$command = 'groupmod --add-user '.$conf['nginx']['user'].' ispapps';
+				//$command = 'groupmod --add-user '.$conf['nginx']['user'].' ispapps';
+				$command = 'usermod -a -G ispapps '.$conf['nginx']['user'];
 				caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 			}
 		}
diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 51d249522..d8337d8d5 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -1495,7 +1495,8 @@ class installer_base {
 			if(!is_user($apps_vhost_user)) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 
 
-			$command = 'adduser '.$conf['apache']['user'].' '.$apps_vhost_group;
+			//$command = 'adduser '.$conf['apache']['user'].' '.$apps_vhost_group;
+			$command = 'usermod -a -G '.$apps_vhost_group.' '.$conf['apache']['user'];
 			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 
 			if(!@is_dir($install_dir)){
-- 
GitLab