From d7622fd2ab3ac200e8fc4fc935dcb0233375697a Mon Sep 17 00:00:00 2001 From: Anthony Date: Mon, 30 Oct 2023 20:52:48 +0800 Subject: [PATCH] Working files --- add-sftp.sh | 18 ++++++++++-------- manifest.jps | 33 +++++++++++++++++++++++---------- 2 files changed, 33 insertions(+), 18 deletions(-) diff --git a/add-sftp.sh b/add-sftp.sh index 6d9dbd1..bafee0a 100644 --- a/add-sftp.sh +++ b/add-sftp.sh @@ -4,7 +4,8 @@ USERNAME="user$(shuf -i 10000-99999 -n 1)" PASSWORD=$(openssl rand -base64 12) -ROOT_DIRECTORY="/var/www/webroot/ROOT" +# Set the user's home directory within the ROOT directory +USER_HOME="/var/www/webroot/ROOT/$USERNAME" # Check if user already exists if id "$USERNAME" &>/dev/null; then @@ -12,8 +13,8 @@ if id "$USERNAME" &>/dev/null; then exit 1 fi -# Create user -useradd -m -d $ROOT_DIRECTORY $USERNAME +# Create user with the specified home directory +useradd -m -d $USER_HOME $USERNAME if [ $? -ne 0 ]; then echo "Failed to create user $USERNAME." exit 1 @@ -23,9 +24,10 @@ echo "$USERNAME:$PASSWORD" | chpasswd # Set user's group to both litespeed and root usermod -aG litespeed,root $USERNAME -# Adjust permissions for the user to write to the ROOT_DIRECTORY -chown $USERNAME:root $ROOT_DIRECTORY -chmod 775 $ROOT_DIRECTORY +# Adjust permissions for the user to write to their home directory +mkdir -p $USER_HOME +chown $USERNAME:root $USER_HOME +chmod 775 $USER_HOME -# Get the hostname -HOSTNAME=$(hostname -f) +# Get the hostname (if needed later in the script) +HOSTNAME=$(hostname -f) \ No newline at end of file diff --git a/manifest.jps b/manifest.jps index e7542eb..af08a8a 100644 --- a/manifest.jps +++ b/manifest.jps @@ -1,6 +1,5 @@ type: update name: Add SFTP User -user: root targetNodes: nodeGroup: cp @@ -14,6 +13,10 @@ settings: caption: Root Directory default: "/var/www/webroot/ROOT" required: true + - type: checkbox + name: agree_creation + caption: I agree to the creation of a folder and SFTP account. + required: true - type: checkbox name: enable_ssh caption: Also enable SSH access @@ -26,19 +29,29 @@ globals: sftpPort: 22 onInstall: - - cmd[cp]: bash <(curl -s https://deploy-proxy.mightybox.io/addons/add-sftp-user/raw/branch/main/install_sftp.sh) - - api: environment.control.ApplyNodeGroupData - nodeGroup: cp - data: - restart: true + - cmd[cp]: mkdir -p /home/jelastic/add-sftp-user-addon/ + - cmd[cp]: 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 + - cmd[cp]: chmod +x /home/jelastic/add-sftp-user-addon/*.sh + - cmd[cp]: + commands: + - echo -e "\nMatch User user*\nPasswordAuthentication yes" >> /etc/ssh/sshd_config + user: root + - cmd[cp]: + commands: + - chown root:root /var/www/webroot/ROOT + - chmod 755 /var/www/webroot/ROOT + user: root + - cmd[cp]: + commands: + - systemctl restart sshd + user: root - return: installSuccess -onUninstall: - - cmd[cp]: rm -f ./add-sftp.sh - actions: add_sftp_user: - - cmd[cp]: bash <(curl -s https://deploy-proxy.mightybox.io/addons/add-sftp-user/raw/branch/main/add-sftp.sh) + - cmd[cp]: + commands: bash /home/jelastic/add-sftp-user-addon/add-sftp.sh + user: root - return: sftpSuccess responses: