From 357dec0a255807b80409effc2417cf03a143ccb9 Mon Sep 17 00:00:00 2001 From: Anthony Date: Thu, 26 Oct 2023 23:54:56 +0800 Subject: [PATCH] Add sh and main file --- add-sftp.sh | 34 +++++++++++++++++++++++++ manifest.jps | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 add-sftp.sh create mode 100644 manifest.jps diff --git a/add-sftp.sh b/add-sftp.sh new file mode 100644 index 0000000..4bb6be0 --- /dev/null +++ b/add-sftp.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# Generate random username and password +USERNAME="user$(shuf -i 10000-99999 -n 1)" +PASSWORD=$(openssl rand -base64 12) + +ROOT_DIRECTORY="/var/www/webroot/ROOT" + +# Check if user already exists +if id "$USERNAME" &>/dev/null; then + echo "User $USERNAME already exists." + exit 1 +fi + +# Create user and set password +useradd -m -d $ROOT_DIRECTORY $USERNAME +if [ $? -ne 0 ]; then + echo "Failed to create user $USERNAME." + exit 1 +fi +echo "$USERNAME:$PASSWORD" | chpasswd + +# Set user's group to litespeed (or another group with SFTP permissions) +usermod -aG litespeed $USERNAME + +# Get the hostname +HOSTNAME=$(hostname -f) + +# Print the credentials +echo "SFTP User Created Successfully!" +echo "Username: $USERNAME" +echo "Password: $PASSWORD" +echo "SFTP Host: $HOSTNAME" +echo "Port: 22" diff --git a/manifest.jps b/manifest.jps new file mode 100644 index 0000000..835f209 --- /dev/null +++ b/manifest.jps @@ -0,0 +1,72 @@ +type: update +baseUrl: https://deploy.mightybox.io/tony/Add-SFTP-User/ +name: Add SFTP User + +targetNodes: + nodeGroup: cp + +user: root + +settings: + sfpform: + fields: + - type: string + inputType: text + name: root_directory + caption: Root Directory + default: "/var/www/webroot/ROOT" + required: true + - type: checkbox + name: enable_ssh + caption: Also enable SSH access + default: false + +globals: + username: "user${fn.random(10000,99999)}" + password: ${fn.password(min)} + sftpHost: ${env.domain} + sftpPort: 22 + +onInstall: + - cmd[cp]: | + curl -O https://deploy.mightybox.io/tony/Add-SFTP-User/raw/master/scripts/add_user_sftp.sh + chmod +x add_user_sftp.sh + - success: | + Add-on installed successfully! + To create additional SFTP accounts, click on the "Add new SFTP user" button. + +actions: + add_sftp_user: + script: /scripts/add-sftp-user.cs?_r=${fn.random}&enable_ssh=${settings.enable_ssh} + +success: + email: | + Connection Details

+ SFTP Host: ${globals.sftpHost}

+ Port: ${globals.sftpPort}
+

+ Login Credentials
+ Username: ${globals.username}

+ Password: ${globals.password} + text: + en: | + Connection Details + + SFTP Host: ${globals.sftpHost} + + Port: ${globals.sftpPort} + + + Login Credentials + + Username: ${globals.username} + + Password: ${globals.password} + +buttons: + - settings: sfpform + action: add_sftp_user + caption: Add SFTP/SSH User + confirmText: "Are you sure you want to add this SFTP user?" + +