| | |
| | | $uid = intval($app->system->getuid($data['new']['puser'])); |
| | | if($uid > $this->min_uid) { |
| | | $command = 'useradd'; |
| | | $command .= ' --home '.escapeshellcmd($data['new']['dir']); |
| | | $command .= ' --gid '.escapeshellcmd($data['new']['pgroup']); |
| | | $command .= ' --non-unique '; |
| | | $command .= ' --password '.escapeshellcmd($data['new']['password']); |
| | | $command .= ' --shell '.escapeshellcmd($data['new']['shell']); |
| | | $command .= ' --uid '.escapeshellcmd($uid); |
| | | $command .= ' -d '.escapeshellcmd($data['new']['dir']); |
| | | $command .= ' -g '.escapeshellcmd($data['new']['pgroup']); |
| | | $command .= ' -o '; // non unique |
| | | if($data['new']['password'] != '') $command .= ' -p '.escapeshellcmd($data['new']['password']); |
| | | $command .= ' -s '.escapeshellcmd($data['new']['shell']); |
| | | $command .= ' -u '.escapeshellcmd($uid); |
| | | $command .= ' '.escapeshellcmd($data['new']['username']); |
| | | |
| | | exec($command); |
| | | $app->log("Executed command: ".$command,LOGLEVEL_DEBUG); |
| | | $app->log("Added shelluser: ".$data['new']['username'],LOGLEVEL_DEBUG); |
| | | |
| | | //* Create .bash_history file |
| | | exec('touch '.escapeshellcmd($data['new']['dir']).'/.bash_history'); |
| | | exec('chmod 755 '.escapeshellcmd($data['new']['dir']).'/.bash_history'); |
| | | exec('chown '.escapeshellcmd($data['new']['username']).':'.escapeshellcmd($data['new']['pgroup']).' '.escapeshellcmd($data['new']['dir']).'/.bash_history'); |
| | | |
| | | //* Disable shell user temporarily if we use jailkit |
| | | if($data['new']['chroot'] == 'jailkit') { |
| | | $command = 'usermod -L '.escapeshellcmd($data['new']['username']); |
| | | exec($command); |
| | | $app->log("Disabling shelluser temporarily: ".$command,LOGLEVEL_DEBUG); |
| | | } |
| | | |
| | | } else { |
| | | $app->log("UID = $uid for shelluser:".$data['new']['username']." not allowed.",LOGLEVEL_ERROR); |
| | |
| | | $command .= ' '.escapeshellcmd($data['old']['username']); |
| | | |
| | | exec($command); |
| | | // $app->log("Updated shelluser: $command ",LOGLEVEL_DEBUG); |
| | | $app->log("Executed command: $command ",LOGLEVEL_DEBUG); |
| | | $app->log("Updated shelluser: ".$data['old']['username'],LOGLEVEL_DEBUG); |
| | | |
| | | |
| | | //* Create .bash_history file |
| | | if(!is_file($data['new']['dir']).'/.bash_history') { |
| | | exec('touch '.escapeshellcmd($data['new']['dir']).'/.bash_history'); |
| | | exec('chmod 755 '.escapeshellcmd($data['new']['dir']).'/.bash_history'); |
| | | exec('chown '.escapeshellcmd($data['new']['username']).':'.escapeshellcmd($data['new']['pgroup']).' '.escapeshellcmd($data['new']['dir']).'/.bash_history'); |
| | | } |
| | | |
| | | } else { |
| | | // The user does not exist, so we insert it now |
| | | $this->insert($event_name,$data); |
| | |
| | | // Get the UID of the user |
| | | $userid = intval($app->system->getuid($data['old']['username'])); |
| | | if($userid > $this->min_uid) { |
| | | $command = 'userdel'; |
| | | $command .= ' '.escapeshellcmd($data['old']['username']); |
| | | // 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']); |
| | | |
| | | exec($command); |
| | | $app->log("Deleted shelluser: ".$data['old']['username'],LOGLEVEL_DEBUG); |
| | | exec($command); |
| | | $app->log("Deleted shelluser: ".$data['old']['username'],LOGLEVEL_DEBUG); |
| | | } |
| | | |
| | | } else { |
| | | $app->log("UID = $userid for shelluser:".$data['old']['username']." not allowed.",LOGLEVEL_ERROR); |