| | |
| | | $homedir = $data['new']['dir'].'/home/'.$data['new']['username']; |
| | | } |
| | | |
| | | // Create home base directory if it does not exist |
| | | if(!is_dir($data['new']['dir'].'/home')){ |
| | | $app->file->mkdirs(escapeshellcmd($data['new']['dir'].'/home'), '0750'); |
| | | $app->system->chown(escapeshellcmd($data['new']['dir'].'/home'),escapeshellcmd($data['new']['puser'])); |
| | | $app->system->chgrp(escapeshellcmd($data['new']['dir'].'/home'),escapeshellcmd($data['new']['pgroup'])); |
| | | $app->file->mkdirs(escapeshellcmd($data['new']['dir'].'/home'), '0755'); |
| | | } |
| | | |
| | | // Change ownership of home base dir to root user |
| | | $app->system->chown(escapeshellcmd($data['new']['dir'].'/home'),'root'); |
| | | $app->system->chgrp(escapeshellcmd($data['new']['dir'].'/home'),'root'); |
| | | $app->system->chmod(escapeshellcmd($data['new']['dir'].'/home'),0755); |
| | | |
| | | if(!is_dir($homedir)){ |
| | | $app->file->mkdirs(escapeshellcmd($homedir), '0750'); |
| | | $app->system->chown(escapeshellcmd($homedir),escapeshellcmd($data['new']['puser'])); |
| | | $app->system->chgrp(escapeshellcmd($homedir),escapeshellcmd($data['new']['pgroup'])); |
| | | $app->system->chown(escapeshellcmd($homedir),escapeshellcmd($data['new']['puser']),false); |
| | | $app->system->chgrp(escapeshellcmd($homedir),escapeshellcmd($data['new']['pgroup']),false); |
| | | } |
| | | $command = 'useradd'; |
| | | $command .= ' -d '.escapeshellcmd($homedir); |
| | |
| | | exec($command); |
| | | $app->log("Executed command: ".$command, LOGLEVEL_DEBUG); |
| | | $app->log("Added shelluser: ".$data['new']['username'], LOGLEVEL_DEBUG); |
| | | |
| | | $app->system->chown(escapeshellcmd($data['new']['dir']),escapeshellcmd($data['new']['username']),false); |
| | | $app->system->chgrp(escapeshellcmd($data['new']['dir']),escapeshellcmd($data['new']['pgroup']),false); |
| | | |
| | | |
| | | // call the ssh-rsa update function |
| | | $app->uses("getconf"); |
| | |
| | | |
| | | //* Create .bash_history file |
| | | $app->system->touch(escapeshellcmd($homedir).'/.bash_history'); |
| | | $app->system->chmod(escapeshellcmd($homedir).'/.bash_history', 0755); |
| | | $app->system->chmod(escapeshellcmd($homedir).'/.bash_history', 0750); |
| | | $app->system->chown(escapeshellcmd($homedir).'/.bash_history', $data['new']['username']); |
| | | $app->system->chgrp(escapeshellcmd($homedir).'/.bash_history', $data['new']['pgroup']); |
| | | |
| | | //* Create .profile file |
| | | $app->system->touch(escapeshellcmd($homedir).'/.profile'); |
| | | $app->system->chmod(escapeshellcmd($homedir).'/.profile', 0644); |
| | | $app->system->chown(escapeshellcmd($homedir).'/.profile', $data['new']['username']); |
| | | $app->system->chgrp(escapeshellcmd($homedir).'/.profile', $data['new']['pgroup']); |
| | | |
| | | //* Disable shell user temporarily if we use jailkit |
| | | if($data['new']['chroot'] == 'jailkit') { |
| | |
| | | |
| | | // Check if the user that we want to update exists, if not, we insert it |
| | | if($app->system->is_user($data['old']['username'])) { |
| | | //* Remove webfolder protection |
| | | $app->system->web_folder_protection($web['document_root'], false); |
| | | |
| | | /* |
| | | $command = 'usermod'; |
| | | $command .= ' --home '.escapeshellcmd($data['new']['dir']); |
| | |
| | | $app->system->chown(escapeshellcmd($data['new']['dir'].'/home'),escapeshellcmd($data['new']['puser'])); |
| | | $app->system->chgrp(escapeshellcmd($data['new']['dir'].'/home'),escapeshellcmd($data['new']['pgroup'])); |
| | | } |
| | | $app->file->mkdirs(escapeshellcmd($homedir), '0750'); |
| | | $app->system->chown(escapeshellcmd($homedir),escapeshellcmd($data['new']['username'])); |
| | | $app->system->chgrp(escapeshellcmd($homedir),escapeshellcmd($data['new']['pgroup'])); |
| | | $app->file->mkdirs(escapeshellcmd($homedir), '0755'); |
| | | $app->system->chown(escapeshellcmd($homedir),'root'); |
| | | $app->system->chgrp(escapeshellcmd($homedir),'root'); |
| | | $app->system->web_folder_protection($web['document_root'], true); |
| | | } else { |
| | | if(!is_dir($homedir)){ |
| | | $app->system->web_folder_protection($web['document_root'], false); |
| | | if(!is_dir($data['new']['dir'].'/home')){ |
| | | $app->file->mkdirs(escapeshellcmd($data['new']['dir'].'/home'), '0750'); |
| | | $app->system->chown(escapeshellcmd($data['new']['dir'].'/home'),escapeshellcmd($data['new']['puser'])); |
| | | $app->system->chgrp(escapeshellcmd($data['new']['dir'].'/home'),escapeshellcmd($data['new']['pgroup'])); |
| | | $app->file->mkdirs(escapeshellcmd($data['new']['dir'].'/home'), '0755'); |
| | | $app->system->chown(escapeshellcmd($data['new']['dir'].'/home'),'root'); |
| | | $app->system->chgrp(escapeshellcmd($data['new']['dir'].'/home'),'root'); |
| | | } |
| | | $app->file->mkdirs(escapeshellcmd($homedir), '0750'); |
| | | $app->system->chown(escapeshellcmd($homedir),escapeshellcmd($data['new']['puser'])); |
| | |
| | | //* Create .bash_history file |
| | | if(!is_file($data['new']['dir']).'/.bash_history') { |
| | | $app->system->touch(escapeshellcmd($homedir).'/.bash_history'); |
| | | $app->system->chmod(escapeshellcmd($homedir).'/.bash_history', 0755); |
| | | $app->system->chmod(escapeshellcmd($homedir).'/.bash_history', 0750); |
| | | $app->system->chown(escapeshellcmd($homedir).'/.bash_history', escapeshellcmd($data['new']['username'])); |
| | | $app->system->chgrp(escapeshellcmd($homedir).'/.bash_history', escapeshellcmd($data['new']['pgroup'])); |
| | | } |
| | | |
| | | //* Create .profile file |
| | | if(!is_file($data['new']['dir']).'/.profile') { |
| | | $app->system->touch(escapeshellcmd($homedir).'/.profile'); |
| | | $app->system->chmod(escapeshellcmd($homedir).'/.profile', 0644); |
| | | $app->system->chown(escapeshellcmd($homedir).'/.profile', escapeshellcmd($data['new']['username'])); |
| | | $app->system->chgrp(escapeshellcmd($homedir).'/.profile', escapeshellcmd($data['new']['pgroup'])); |
| | | } |
| | | |
| | | //* Add webfolder protection again |
| | | $app->system->web_folder_protection($web['document_root'], true); |
| | | } else { |
| | | // The user does not exist, so we insert it now |
| | | $this->insert($event_name, $data); |
| | |
| | | } |
| | | $sshrsa = trim($sshrsa); |
| | | $usrdir = escapeshellcmd($this->data['new']['dir']); |
| | | //* Home directory of the new shell user |
| | | if($this->data['new']['chroot'] == 'jailkit') { |
| | | $usrdir = escapeshellcmd($this->data['new']['dir']); |
| | | } else { |
| | | $usrdir = escapeshellcmd($this->data['new']['dir'].'/home/'.$this->data['new']['username']); |
| | | } |
| | | $sshdir = $usrdir.'/.ssh'; |
| | | $sshkeys= $usrdir.'/.ssh/authorized_keys'; |
| | | |