| | |
| | | $app->uses("getconf"); |
| | | $web_config = $app->getconf->get_server_config($conf["server_id"], 'web'); |
| | | |
| | | //* Check if this is a chrooted setup |
| | | if($web_config['website_basedir'] != '' && @is_file($web_config['/var/www'].'/etc/passwd')) { |
| | | $apache_chrooted = true; |
| | | } else { |
| | | $apache_chrooted = false; |
| | | } |
| | | |
| | | if($data["new"]["document_root"] == '') { |
| | | $app->log("document_root not set",LOGLEVEL_WARN); |
| | | return 0; |
| | |
| | | $command .= ' '.escapeshellcmd($data["new"]["system_user"]); |
| | | exec($command); |
| | | |
| | | |
| | | if($apache_chrooted) exec("chroot ".escapeshellcmd($web_config['website_basedir'])." ".$command); |
| | | |
| | | |
| | | } |
| | |
| | | $groupname = escapeshellcmd($data["new"]["system_group"]); |
| | | if($data["new"]["system_group"] != '' && !$app->system->is_group($data["new"]["system_group"])) { |
| | | exec("groupadd $groupname"); |
| | | if($apache_chrooted) exec("chroot ".escapeshellcmd($web_config['website_basedir'])." groupadd $groupname"); |
| | | $app->log("Adding the group: $groupname",LOGLEVEL_DEBUG); |
| | | } |
| | | |
| | | $username = escapeshellcmd($data["new"]["system_user"]); |
| | | if($data["new"]["system_user"] != '' && !$app->system->is_user($data["new"]["system_user"])) { |
| | | exec("useradd -d ".escapeshellcmd($data["new"]["document_root"])." -g $groupname -G sshusers $username -s /bin/false"); |
| | | if($apache_chrooted) exec("chroot ".escapeshellcmd($web_config['website_basedir'])." "."useradd -d ".escapeshellcmd($data["new"]["document_root"])." -g $groupname -G sshusers $username -s /bin/false"); |
| | | $app->log("Adding the user: $username",LOGLEVEL_DEBUG); |
| | | } |
| | | |
| | |
| | | $command .= ' --groups sshusers'; |
| | | $command .= ' '.escapeshellcmd($data["new"]["system_user"]); |
| | | $this->_exec($command); |
| | | |
| | | //* if we have a chrooted apache enviroment |
| | | if($apache_chrooted) { |
| | | exec("chroot ".escapeshellcmd($web_config['website_basedir'])." ".$command); |
| | | |
| | | //* add the apache user to the client group in the chroot enviroment |
| | | $tmp_groupfile = $app->system->server_conf["group_datei"]; |
| | | $app->system->server_conf["group_datei"] = $web_config['website_basedir'].'/etc/group'; |
| | | $app->system->add_user_to_group($groupname, escapeshellcmd($web_config['user'])); |
| | | $app->system->server_conf["group_datei"] = $tmp_groupfile; |
| | | unset($tmp_groupfile); |
| | | } |
| | | |
| | | //* add the apache user to the client group |
| | | $app->system->add_user_to_group($groupname, escapeshellcmd($web_config['user'])); |
| | |
| | | $app->uses("getconf"); |
| | | $web_config = $app->getconf->get_server_config($conf["server_id"], 'web'); |
| | | |
| | | //* Check if this is a chrooted setup |
| | | if($web_config['website_basedir'] != '' && @is_file($web_config['/var/www'].'/etc/passwd')) { |
| | | $apache_chrooted = true; |
| | | } else { |
| | | $apache_chrooted = false; |
| | | } |
| | | |
| | | if($data["old"]["type"] != "vhost" && $data["old"]["parent_domain_id"] > 0) { |
| | | //* This is a alias domain or subdomain, so we have to update the website instead |
| | |
| | | $command = 'userdel'; |
| | | $command .= ' '.$data["old"]["system_user"]; |
| | | exec($command); |
| | | if($apache_chrooted) exec("chroot ".escapeshellcmd($web_config['website_basedir'])." ".$command); |
| | | |
| | | } |
| | | } |
| | | |