68 lines
1.6 KiB
Bash
68 lines
1.6 KiB
Bash
|
#!/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."
|