Re-updated the fixes and implementation
parent
cda9073a77
commit
8f95682389
|
@ -27,8 +27,8 @@ log_debug() {
|
||||||
# Validate username format
|
# Validate username format
|
||||||
validate_username() {
|
validate_username() {
|
||||||
local username=$1
|
local username=$1
|
||||||
if ! [[ "$username" =~ ^[a-zA-Z0-9_]{3,32}$ ]]; then
|
if ! [[ $username =~ ^[a-zA-Z0-9_]{3,32}$ ]]; then
|
||||||
log_error "Invalid username format: $username"
|
log_error "Invalid username format. Username must be 3-32 characters long and contain only letters, numbers, and underscores."
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
return 0
|
return 0
|
||||||
|
@ -40,9 +40,8 @@ SSH_ENABLED=$3
|
||||||
|
|
||||||
log "Script started"
|
log "Script started"
|
||||||
|
|
||||||
# Validate username
|
# Validate username format
|
||||||
if ! validate_username "$USERNAME"; then
|
if ! validate_username "$USERNAME"; then
|
||||||
log_error "Invalid username format. Username must be 3-32 characters long and contain only letters, numbers, and underscores."
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
29
manifest.jps
29
manifest.jps
|
@ -13,21 +13,16 @@ settings:
|
||||||
fields:
|
fields:
|
||||||
- type: displayfield
|
- type: displayfield
|
||||||
name: infoField
|
name: infoField
|
||||||
caption: Root Directory
|
caption: Root Directory /var/www/webroot/ROOT/
|
||||||
value: /var/www/webroot/ROOT/
|
|
||||||
description: "A user-specific directory will be created under /home/username"
|
description: "A user-specific directory will be created under /home/username"
|
||||||
required: false
|
required: false
|
||||||
- type: string
|
- type: textfield
|
||||||
inputType: text
|
name: custom_username
|
||||||
name: username
|
caption: Custom Username
|
||||||
caption: SFTP Username
|
description: "Enter a custom username (3-32 characters, alphanumeric + underscore only)"
|
||||||
placeholder: "Enter username"
|
|
||||||
description: "Enter the desired username (3-32 characters, letters, numbers, and underscores only)"
|
|
||||||
required: true
|
required: true
|
||||||
regex: ^[a-zA-Z0-9_]{3,32}$
|
regex: ^[a-zA-Z0-9_]{3,32}$
|
||||||
regexText: "Username must be 3-32 characters long and contain only letters, numbers, and underscores"
|
regexText: "Username must be 3-32 characters long and contain only letters, numbers, and underscores"
|
||||||
hideLabel: false
|
|
||||||
hidden: false
|
|
||||||
- type: checkbox
|
- type: checkbox
|
||||||
name: allow
|
name: allow
|
||||||
caption: Accept User Creation
|
caption: Accept User Creation
|
||||||
|
@ -72,11 +67,10 @@ settings:
|
||||||
|
|
||||||
|
|
||||||
globals:
|
globals:
|
||||||
username: "${settings.sfpform.username}"
|
username: ${settings.custom_username}
|
||||||
password: ${fn.password(min)}
|
password: ${fn.password(min)}
|
||||||
sftpHost: ${env.domain}
|
sftpHost: ${env.domain}
|
||||||
sftpPort: 22
|
sftpPort: 22
|
||||||
enable_ssh: ${settings.sfpform.enable_ssh:false}
|
|
||||||
|
|
||||||
onInstall:
|
onInstall:
|
||||||
- cmd [cp]:
|
- cmd [cp]:
|
||||||
|
@ -90,10 +84,10 @@ onInstall:
|
||||||
- cmd[cp]:
|
- cmd[cp]:
|
||||||
user: root
|
user: root
|
||||||
commands: |-
|
commands: |-
|
||||||
if grep -qE "^Match User [a-zA-Z0-9_]*$" /etc/ssh/sshd_config; then
|
if grep -qE "^Match User user[0-9]*$" /etc/ssh/sshd_config; then
|
||||||
sed -i '/^Match User [a-zA-Z0-9_]*/!b;n;c\ PasswordAuthentication yes' /etc/ssh/sshd_config
|
sed -i '/^Match User user[0-9]*/!b;n;c\ PasswordAuthentication yes' /etc/ssh/sshd_config
|
||||||
else
|
else
|
||||||
echo -e "\n# Added by SFTP addon\nMatch User *\n\tPasswordAuthentication yes" >> /etc/ssh/sshd_config
|
echo -e "\n# Added by SFTP addon\nMatch User user*\n\tPasswordAuthentication yes" >> /etc/ssh/sshd_config
|
||||||
fi
|
fi
|
||||||
awk '!seen[$0]++' /etc/ssh/sshd_config > /etc/ssh/sshd_config.tmp && mv /etc/ssh/sshd_config.tmp /etc/ssh/sshd_config
|
awk '!seen[$0]++' /etc/ssh/sshd_config > /etc/ssh/sshd_config.tmp && mv /etc/ssh/sshd_config.tmp /etc/ssh/sshd_config
|
||||||
systemctl restart sshd
|
systemctl restart sshd
|
||||||
|
@ -116,12 +110,9 @@ menu:
|
||||||
|
|
||||||
actions:
|
actions:
|
||||||
add_sftp_user:
|
add_sftp_user:
|
||||||
- setGlobals:
|
|
||||||
enable_ssh: ${settings.sfpform.enable_ssh:false}
|
|
||||||
- cmd[cp]:
|
- cmd[cp]:
|
||||||
user: root
|
user: root
|
||||||
commands: |-
|
commands: bash /home/jelastic/add-sftp-user-addon/add-sftp.sh ${globals.username} ${globals.password}
|
||||||
bash /home/jelastic/add-sftp-user-addon/add-sftp.sh "${globals.username}" "${globals.password}" "${globals.enable_ssh}"
|
|
||||||
- cmd[cp]:
|
- cmd[cp]:
|
||||||
user: root
|
user: root
|
||||||
commands: echo $CREATED_USERNAME
|
commands: echo $CREATED_USERNAME
|
||||||
|
|
Loading…
Reference in New Issue