Marius Cramer
2014-08-14 0e73fca2a24ffa6f1ec182563f22b73a387a59bb
server/plugins-available/shelluser_base_plugin.inc.php
@@ -82,6 +82,13 @@
         $app->log('Directory of the shell user is not valid.',LOGLEVEL_WARN);
         return false;
      }
      if(!$app->system->is_allowed_user($data['new']['username'], false, false)
         || !$app->system->is_allowed_user($data['new']['puser'], true, true)
         || !$app->system->is_allowed_group($data['new']['pgroup'], true, true)) {
         $app->log('Shell user must not be root or in group root.',LOGLEVEL_WARN);
         return false;
      }
      if($app->system->is_user($data['new']['puser'])) {
@@ -151,6 +158,13 @@
         return false;
      }
      if(!$app->system->is_allowed_user($data['new']['username'], false, false)
         || !$app->system->is_allowed_user($data['new']['puser'], true, true)
         || !$app->system->is_allowed_group($data['new']['pgroup'], true, true)) {
         $app->log('Shell user must not be root or in group root.',LOGLEVEL_WARN);
         return false;
      }
      if($app->system->is_user($data['new']['puser'])) {
         // Get the UID of the parent user
         $uid = intval($app->system->getuid($data['new']['puser']));
@@ -217,7 +231,7 @@
         if($userid > $this->min_uid) {
            // We delete only non jailkit users, jailkit users will be deleted by the jailkit plugin.
            if ($data['old']['chroot'] != "jailkit") {
               $command = 'userdel -f';
               $command = 'killall -u '.escapeshellcmd($data['old']['username']).' ; userdel -f';
               $command .= ' '.escapeshellcmd($data['old']['username']).' &> /dev/null';
               exec($command);
               $app->log("Deleted shelluser: ".$data['old']['username'], LOGLEVEL_DEBUG);