You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ublinux-init/ublinux/rc.post.d/24-samba-usershares

58 lines
2.8 KiB

#!/usr/bin/env bash
ENABLED=yes
[[ ${ENABLED} != "yes" ]] && exit 0
DEBUGMODE=no
SOURCE=/usr/lib/ublinux/functions; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0
SOURCE=/usr/lib/ublinux/default; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null || exit 0
debug_mode "$0" "$@"
SOURCE=${SYSCONF}/config; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null
SOURCE=${SYSCONF}/server; [ -f ${SOURCE} ] && . ${SOURCE} 2>/dev/null
## Включить SAMBA usershares лёгкая публикация каталога пользователя в сети
## SAMBA_USERSHARE=enable|yes|disable|no
## enable|yes # Включить настройку usershares
## disable|no # Выключить настройку usershares
##
## SAMBA_USERSHARE[<param>]=<value>
## usershare max shares # Разрешённое максимальное кол-во сетевых каталогов. Возмжные значения от 0 до 65535. По умолчанию: 100
## usershare allow guests # Разрешить гость вход. Возможные значения 'yes' | 'no'. По умолчанию: yes
## usershare owner only # Разрешить только владельцу. Возможные значения 'yes' | 'no'. По умолчанию: yes
PATH_SAMBA="/etc/samba"
FILE_SAMBA_CONF="${PATH_SAMBA}/smb.conf"
FILE_USERSSHARES_CONF="${PATH_SAMBA}/usershares.conf"
USERSHARES_CONF=$(cat <<EOF
[global]
usershare path = /var/lib/samba/usershares
usershare max shares = 100
usershare allow guests = yes
usershare owner only = yes
usershare prefix deny list = /etc /dev /sys /proc
usershare prefix allow list = /home /srv /mnt /media /var
EOF
)
USERSHARES="/var/lib/samba/usershares"
[[ -d ${USERSHARES} ]] && chmod 1770 ${USERSHARES} && chgrp -R sambashare ${USERSHARES} || install -dm1770 -o root -g sambashare ${USERSHARES}
USERSHARESPUB="/home/usershares"
[[ -d ${USERSHARESPUB} ]] && chmod 3770 ${USERSHARESPUB} && chgrp -R sambashare ${USERSHARESPUB} || install -dm3770 -o root -g sambashare ${USERSHARESPUB}
usermod -a -G sambashare nobody
if [[ ${SAMBA_USERSHARE} == @(enable|yes) ]]; then
[[ -f "${FILE_USERSSHARES_CONF}" ]] || echo -ne "${USERSHARES_CONF}" > "${FILE_USERSSHARES_CONF}"
[[ $(cat "${FILE_SAMBA_CONF}" 2>/dev/null) =~ "include = ${FILE_USERSSHARES_CONF}" ]] || sed "/^\s*\[global\]/a\ \ include = ${FILE_USERSSHARES_CONF}" -i ${FILE_SAMBA_CONF}
elif [[ ${SAMBA_USERSHARE} == @(disable|no) ]]; then
rm -f "${FILE_USERSSHARES_CONF}"
sed "\|include = ${FILE_USERSSHARES_CONF}|d" -i "${FILE_SAMBA_CONF}"
fi
## TODO
## Изменение параметров и вставка новых в файле конфигурации ${FILE_USERSSHARES_CONF}