46 lines
1.0 KiB
Bash
Executable File
46 lines
1.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Usage: ./create_samba_user.sh <username> <password>
|
|
|
|
# Check for root
|
|
if [[ $EUID -ne 0 ]]; then
|
|
echo "This script must be run as root."
|
|
exit 1
|
|
fi
|
|
|
|
# Input arguments or prompt
|
|
USERNAME="$1"
|
|
PASSWORD="$2"
|
|
|
|
# If no username or password provided, exit with error
|
|
if [[ -z "$USERNAME" || -z "$PASSWORD" ]]; then
|
|
echo "Usage: $0 <username> <password>"
|
|
exit 1
|
|
fi
|
|
|
|
# Create system user without extra fields
|
|
if id "$USERNAME" &>/dev/null; then
|
|
echo "User $USERNAME already exists."
|
|
else
|
|
useradd --comment "" --shell /bin/bash --create-home "$USERNAME"
|
|
echo "$USERNAME:$PASSWORD" | chpasswd
|
|
echo "System user $USERNAME created."
|
|
fi
|
|
|
|
# Add to Samba
|
|
(echo "$PASSWORD"; echo "$PASSWORD") | smbpasswd -s -a "$USERNAME"
|
|
|
|
if [[ $? -eq 0 ]]; then
|
|
echo "Samba user $USERNAME added successfully."
|
|
else
|
|
echo "Failed to add Samba user."
|
|
fi
|
|
|
|
log_file="$SMB_TOOLS_PATH/filebrowser/addusers.txt"
|
|
|
|
if [ -f "$log_file" ]; then
|
|
echo "$USERNAME:$PASSWORD" >> "$log_file"
|
|
fi
|
|
|
|
# Non-blocking docker restart
|
|
docker restart filebrowser </dev/null &>/dev/null & |