53 lines
1.1 KiB
Bash
53 lines
1.1 KiB
Bash
create_or_use_directory() {
|
|
read -p "Путь к папке: " DIR
|
|
if [ -d "$DIR" ]; then
|
|
log "Используем $DIR"
|
|
else
|
|
read -p "Создать $DIR ? (y/N): " Y
|
|
[[ "$Y" != "y" ]] && return 1
|
|
mkdir -p "$DIR"
|
|
chmod 770 "$DIR"
|
|
fi
|
|
echo "$DIR"
|
|
}
|
|
|
|
setup_samba() {
|
|
$PKG install -y samba
|
|
CONF="/etc/samba/smb.conf"
|
|
SNAP=$(backup_create samba "$CONF")
|
|
|
|
cat > "$CONF" <<EOF
|
|
[global]
|
|
workgroup = WORKGROUP
|
|
security = user
|
|
map to guest = bad user
|
|
EOF
|
|
|
|
while true; do
|
|
read -p "Имя шары (Enter=выход): " NAME
|
|
[ -z "$NAME" ] && break
|
|
|
|
PATH=$(create_or_use_directory) || continue
|
|
read -p "Пользователи (guest или user1,user2): " USERS
|
|
|
|
if [[ "$USERS" == "guest" ]]; then
|
|
GUEST="yes"; VALID=""
|
|
else
|
|
GUEST="no"; VALID="valid users = $USERS"
|
|
fi
|
|
|
|
cat >> "$CONF" <<EOF
|
|
|
|
[$NAME]
|
|
path = $PATH
|
|
guest ok = $GUEST
|
|
writable = yes
|
|
$VALID
|
|
EOF
|
|
done
|
|
|
|
testparm || { cp "$SNAP/smb.conf" "$CONF"; }
|
|
systemctl restart smbd
|
|
pause
|
|
}
|