Compare commits
No commits in common. "0edba9413371e704d42e889e6180c41cb79f2179" and "d2870fd1d516550a429142eb06a1788df2f17802" have entirely different histories.
0edba94133
...
d2870fd1d5
27
add-sftp.sh
27
add-sftp.sh
|
@ -24,14 +24,9 @@ log_debug() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Validate username format
|
# Generate random username
|
||||||
validate_username() {
|
generate_username() {
|
||||||
local username=$1
|
echo "user$(shuf -i 10000-99999 -n 1)"
|
||||||
if ! [[ "$username" =~ ^[a-zA-Z0-9_]{3,32}$ ]]; then
|
|
||||||
log_error "Invalid username format: $username"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
return 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
USERNAME=$1
|
USERNAME=$1
|
||||||
|
@ -40,17 +35,11 @@ SSH_ENABLED=$3
|
||||||
|
|
||||||
log "Script started"
|
log "Script started"
|
||||||
|
|
||||||
# Validate username
|
# Check if user already exists, if yes generate a new one
|
||||||
if ! validate_username "$USERNAME"; then
|
while id "$USERNAME" &>/dev/null; do
|
||||||
log_error "Invalid username format. Username must be 3-32 characters long and contain only letters, numbers, and underscores."
|
USERNAME=$(generate_username)
|
||||||
exit 1
|
log_warning "Username $USERNAME already exists, generating a new username."
|
||||||
fi
|
done
|
||||||
|
|
||||||
# Check if user already exists
|
|
||||||
if id "$USERNAME" &>/dev/null; then
|
|
||||||
log_error "Username $USERNAME already exists. Please choose a different username."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
USER_HOME="/home/sftpusers/$USERNAME"
|
USER_HOME="/home/sftpusers/$USERNAME"
|
||||||
ROOT_DIRECTORY="/var/www/webroot/ROOT"
|
ROOT_DIRECTORY="/var/www/webroot/ROOT"
|
||||||
|
|
11
manifest.jps
11
manifest.jps
|
@ -1,4 +1,4 @@
|
||||||
version: 0.3
|
version: 0.2
|
||||||
id: addsftp
|
id: addsftp
|
||||||
type: update
|
type: update
|
||||||
description: An addon to add new SFTP users. It can also manage created user accounts. If SSH is enabled, WP-CLI will attempt to be installed if it is not yet installed.
|
description: An addon to add new SFTP users. It can also manage created user accounts. If SSH is enabled, WP-CLI will attempt to be installed if it is not yet installed.
|
||||||
|
@ -16,13 +16,6 @@ settings:
|
||||||
caption: Root Directory /var/www/webroot/ROOT/
|
caption: Root Directory /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: textfield
|
|
||||||
name: username
|
|
||||||
caption: SFTP Username
|
|
||||||
description: "Enter the desired username (3-32 characters, letters, numbers, and underscores only)"
|
|
||||||
required: true
|
|
||||||
regex: ^[a-zA-Z0-9_]{3,32}$
|
|
||||||
regexText: "Username must be 3-32 characters long and contain only letters, numbers, and underscores"
|
|
||||||
- type: checkbox
|
- type: checkbox
|
||||||
name: allow
|
name: allow
|
||||||
caption: Accept User Creation
|
caption: Accept User Creation
|
||||||
|
@ -67,7 +60,7 @@ settings:
|
||||||
|
|
||||||
|
|
||||||
globals:
|
globals:
|
||||||
username: ${settings.username}
|
username: "user${fn.random(10000,99999)}"
|
||||||
password: ${fn.password(min)}
|
password: ${fn.password(min)}
|
||||||
sftpHost: ${env.domain}
|
sftpHost: ${env.domain}
|
||||||
sftpPort: 22
|
sftpPort: 22
|
||||||
|
|
Loading…
Reference in New Issue