129 lines
4.1 KiB
Plaintext
129 lines
4.1 KiB
Plaintext
version: 0.1
|
|
id: newsshuser
|
|
type: update
|
|
description: An addon to add new SSH users.
|
|
name: Add SSH User
|
|
|
|
targetNodes:
|
|
nodeGroup: cp
|
|
|
|
settings:
|
|
sfpform:
|
|
submitUnchanged: true
|
|
fields:
|
|
- type: displayfield
|
|
name: infoField
|
|
caption: Root Directory /var/www/webroot/ROOT/
|
|
description: "A user-specific directory will be created under /home/username"
|
|
required: false
|
|
- type: checkbox
|
|
name: allow
|
|
caption: Accept User Creation
|
|
default: false
|
|
required: false
|
|
|
|
globals:
|
|
username: "user${fn.random(10000,99999)}"
|
|
password: ${fn.password(min)}
|
|
sftpHost: ${env.domain}
|
|
sftpPort: 22
|
|
|
|
onInstall:
|
|
- cmd [cp]:
|
|
user: root
|
|
commands: |-
|
|
mkdir -p /home/jelastic/add-sftp-user-addon/
|
|
mkdir -p /home/jelastic/add-sftp-user-addon/logs
|
|
touch /home/jelastic/add-sftp-user-addon/logs/script_output.log
|
|
wget https://deploy-proxy.mightybox.io/addons/add-sftp-user/raw/branch/main/add-sftp.sh -O /home/jelastic/add-sftp-user-addon/add-sftp.sh
|
|
chmod +x /home/jelastic/add-sftp-user-addon/*.sh
|
|
- cmd[cp]:
|
|
user: root
|
|
commands:
|
|
- echo -e "\nMatch User user*\nPasswordAuthentication yes" >> /etc/ssh/sshd_config
|
|
- cmd[cp]:
|
|
user: root
|
|
commands:
|
|
- systemctl restart sshd
|
|
- api: environment.control.RestartContainer
|
|
nodeGroup: cp
|
|
nodeid: ${nodes.cp.id}
|
|
- return: installSuccess
|
|
|
|
actions:
|
|
add_sftp_user:
|
|
- cmd[cp]:
|
|
user: root
|
|
commands: bash /home/jelastic/add-sftp-user-addon/add-sftp.sh ${globals.username} ${globals.password}
|
|
- cmd[cp]:
|
|
user: root
|
|
commands: echo $CREATED_USERNAME
|
|
- setGlobals:
|
|
username: ${response.out}
|
|
- cmd[cp]:
|
|
user: root
|
|
commands: echo $CREATED_PASSWORD
|
|
- setGlobals:
|
|
password: ${response.out}
|
|
- return:
|
|
type: info
|
|
message: "Connection Details\n\nSFTP Host: ${globals.sftpHost}\n\nPort: ${globals.sftpPort}\n\nLogin Credentials\n\nUsername: ${globals.username}\n\nPassword: ${globals.password}"
|
|
|
|
- cmd[cp]:
|
|
user: root
|
|
commands:
|
|
- echo "${settings.manage_username}:${globals.password}" | chpasswd
|
|
- echo "Password changed for ${settings.manage_username}" >> /home/jelastic/add-sftp-user-addon/logs/script_output.log
|
|
- if ("${response.exitStatus}" != "0"):
|
|
return: passwordChangeError
|
|
- return: passwordChangeSuccess
|
|
delete_user:
|
|
- cmd[cp]:
|
|
user: root
|
|
commands:
|
|
- userdel ${settings.manage_username}
|
|
- rm -rf /home/sftpusers/${settings.manage_username}
|
|
- echo "User ${settings.manage_username} deleted" >> /home/jelastic/add-sftp-user-addon/logs/script_output.log
|
|
|
|
- if ("${response.exitStatus}" != "0"):
|
|
return: deleteUserError
|
|
- return: deleteUserSuccess
|
|
|
|
responses:
|
|
installSuccess:
|
|
type: success
|
|
message: "Installed Successfully"
|
|
sftpError:
|
|
type: error
|
|
message: "Failed to add SFTP user. Please check the server logs for more details."
|
|
sftpSuccess:
|
|
type: success
|
|
message: "Connection Details\n\nSFTP Host: ${globals.sftpHost}\n\nPort: ${globals.sftpPort}\n\nLogin Credentials\n\nUsername: ${globals.username}\n\nPassword: ${globals.password}"
|
|
type: success
|
|
message: "Password changed successfully for ${settings.manage_username}.\n\n New password: ${globals.password}"
|
|
deleteUserError:
|
|
type: error
|
|
message: "Failed to delete user ${settings.manage_username}. Check logs for details."
|
|
deleteUserSuccess:
|
|
type: success
|
|
message: "User ${settings.manage_username} deleted successfully."
|
|
noUsersFound:
|
|
type: error
|
|
message: "No SFTP users have been created yet."
|
|
|
|
buttons:
|
|
- settings: sfpform
|
|
action: add_sftp_user
|
|
caption: SSH User
|
|
confirmText: "Are you sure you want to add this SFTP user?"
|
|
submitButtonText: Add User
|
|
- settings: manageUserForm
|
|
action: delete_user
|
|
caption: Delete User
|
|
confirmText: "Are you sure you want to delete this user?"
|
|
|
|
onUninstall:
|
|
- cmd[cp]:
|
|
user: root
|
|
commands:
|
|
- rm -rf /home/jelastic/add-sftp-user-addon/ |