#!/bin/bash if [ "$(id -u)" != "0" ]; then echo "This script requires superuser rights. Running with sudo..." exec sudo "$0" "$@" fi if [ -z "$1" ] || [ -z "$2" ]; then echo "Please provide both the username and password as arguments." exit 1 fi trap 'echo -e "\033[31mSomething went wrong\033[0m"; exit 1' EXIT set -e export DEBIAN_FRONTEND=noninteractive SMB_CONF="/etc/samba/smb.conf" USERNAME="$1" PASSWORD="$2" apt update -y apt install -y samba systemctl enable smbd systemctl start smbd mkdir -p /data (echo "$PASSWORD"; echo "$PASSWORD") | smbpasswd -a -s "$USERNAME" smbpasswd -e "$USERNAME" chown "$USERNAME":"$USERNAME" /data/ chmod 770 /data/ # Backup existing configuration file cp "$SMB_CONF" "${SMB_CONF}.bak" # New section NEW_SECTION=$(cat << EOM # data folder access [data] path = /data read only = no browseable = yes create mask = 0666 force create mode = 0666 directory mask = 0777 force directory mode = 0777 valid users = $USERNAME EOM ) # Adding a new section to the end of the configuration file echo "$NEW_SECTION" | tee -a "$SMB_CONF" > /dev/null if grep -q "^obey pam restrictions = yes" "$SMB_CONF"; then sed -i 's/^obey pam restrictions = yes/obey pam restrictions = no/' "$SMB_CONF" echo "Param 'obey pam restrictions' changed to 'no'" else echo "Param 'obey pam restrictions = yes' not found." fi echo "Samba configuration updated and saved to $SMB_CONF." systemctl restart smbd nmbd trap - EXIT echo "Samba configured complete."