Update username creation
parent
d2870fd1d5
commit
cf5397c9a7
27
add-sftp.sh
27
add-sftp.sh
|
@ -24,9 +24,14 @@ log_debug() {
|
|||
fi
|
||||
}
|
||||
|
||||
# Generate random username
|
||||
generate_username() {
|
||||
echo "user$(shuf -i 10000-99999 -n 1)"
|
||||
# Validate username format
|
||||
validate_username() {
|
||||
local username=$1
|
||||
if ! [[ "$username" =~ ^[a-zA-Z0-9_]{3,32}$ ]]; then
|
||||
log_error "Invalid username format: $username"
|
||||
return 1
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
USERNAME=$1
|
||||
|
@ -35,11 +40,17 @@ SSH_ENABLED=$3
|
|||
|
||||
log "Script started"
|
||||
|
||||
# Check if user already exists, if yes generate a new one
|
||||
while id "$USERNAME" &>/dev/null; do
|
||||
USERNAME=$(generate_username)
|
||||
log_warning "Username $USERNAME already exists, generating a new username."
|
||||
done
|
||||
# Validate username
|
||||
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
|
||||
fi
|
||||
|
||||
# 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"
|
||||
ROOT_DIRECTORY="/var/www/webroot/ROOT"
|
||||
|
|
|
@ -16,6 +16,13 @@ settings:
|
|||
caption: Root Directory /var/www/webroot/ROOT/
|
||||
description: "A user-specific directory will be created under /home/username"
|
||||
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
|
||||
name: allow
|
||||
caption: Accept User Creation
|
||||
|
@ -60,7 +67,7 @@ settings:
|
|||
|
||||
|
||||
globals:
|
||||
username: "user${fn.random(10000,99999)}"
|
||||
username: ${settings.username}
|
||||
password: ${fn.password(min)}
|
||||
sftpHost: ${env.domain}
|
||||
sftpPort: 22
|
||||
|
|
Loading…
Reference in New Issue