// Extract the provided details var USERNAME = "${globals.username}"; var PASSWORD = "${fn.password(min)}"; var ROOT_DIRECTORY = "/var/www/webroot/ROOT"; var ENABLE_SSH = false; var EMAILS = "${user.email}"; // Check if user already exists if (jelastic.env.control.ExecCmdById('${env.envName}', '${nodes.cp.master.id}', 'id ' + USERNAME).result == 0) { return { result: 99, error: "User " + USERNAME + " already exists." }; } // Create the user, set password, and configure SFTP var cmd = [ "GROUP=$(stat -c '%G' " + ROOT_DIRECTORY + ")", "useradd -m -d " + ROOT_DIRECTORY + " -g $GROUP " + USERNAME, "echo '" + USERNAME + ":" + PASSWORD + "' | chpasswd", "chown " + USERNAME + ":$GROUP " + ROOT_DIRECTORY, "chown -R root:$GROUP /var/www", "echo 'Match Group $GROUP' >> /etc/ssh/sshd_config", "echo ' ChrootDirectory " + ROOT_DIRECTORY + "' >> /etc/ssh/sshd_config", "echo ' PasswordAuthentication yes' >> /etc/ssh/sshd_config", "echo ' ForceCommand internal-sftp' >> /etc/ssh/sshd_config", "systemctl restart sshd" ].join(" && "); return jelastic.env.control.ExecCmdById('${env.envName}', '${nodes.cp.master.id}', cmd);