Add sh and main file

main
Anthony 2023-10-26 23:54:56 +08:00
parent c54f491042
commit 357dec0a25
2 changed files with 106 additions and 0 deletions

34
add-sftp.sh 100644
View File

@ -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"

72
manifest.jps 100644
View File

@ -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<br><br>
SFTP Host: ${globals.sftpHost}<br><br>
Port: ${globals.sftpPort}<br>
<br><br>
Login Credentials<br>
Username: ${globals.username}<br><br>
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?"