utils/samba.sh

80 lines
1.7 KiB
Bash
Raw Normal View History

2024-07-30 06:31:58 +05:00
#!/bin/bash
if [ "$(id -u)" != "0" ]; then
echo -e "\033[31mThis script requires superuser rights.\033[0m"
exit 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
# backups folder access
[backups]
path = /backups
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
2024-07-07 00:30:41 +05:00
echo "Samba configured complete."