New update

main
tony 2023-12-13 13:46:08 +00:00
parent ed9982a71c
commit e1ea09a927
1 changed files with 111 additions and 15 deletions

View File

@ -1,4 +1,5 @@
version: 0.2
version: 0.1
id: newsshuser
type: update
description: An addon to add new SSH users.
name: Add SSH User
@ -6,28 +7,123 @@ 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)}
sshHost: ${env.domain}
sshPort: 22
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:
- useradd -m -s /bin/bash ${globals.username}
- echo "${globals.username}:${globals.password}" | chpasswd
- mkdir -p /home/${globals.username}/.ssh
- chmod 700 /home/${globals.username}/.ssh
- touch /home/${globals.username}/.ssh/authorized_keys
- chmod 600 /home/${globals.username}/.ssh/authorized_keys
- chown -R ${globals.username}:${globals.username} /home/${globals.username}/.ssh
- return:
type: info
message: "SSH account created successfully.\n\nSSH Host: ${globals.sshHost}\n\nPort: ${globals.sshPort}\n\nLogin Credentials\n\nUsername: ${globals.username}\n\nPassword: ${globals.password}"
- 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: "SSH account created successfully."
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/