mirror of
https://github.com/dockur/windows.git
synced 2025-10-17 13:32:23 +00:00
Update samba.sh
This commit is contained in:
parent
ac3f4e2971
commit
d472fc32ef
40
src/samba.sh
40
src/samba.sh
@ -4,8 +4,8 @@ set -Eeuo pipefail
|
|||||||
: "${SAMBA:="Y"}" # Enable Samba
|
: "${SAMBA:="Y"}" # Enable Samba
|
||||||
: "${SAMBA_LEVEL:="1"}" # Logging level
|
: "${SAMBA_LEVEL:="1"}" # Logging level
|
||||||
: "${SAMBA_DEBUG:="N"}" # Disable debug
|
: "${SAMBA_DEBUG:="N"}" # Disable debug
|
||||||
: "${SAMBA_USER:="root"}" # Samba user
|
: "${SAMBA_UID:="1000"}" # Samba user id
|
||||||
: "${SAMBA_GROUP:="root"}" # Samba group
|
: "${SAMBA_GID:="1000"}" # Samba group id
|
||||||
|
|
||||||
tmp="/tmp/smb"
|
tmp="/tmp/smb"
|
||||||
rm -rf "$tmp"
|
rm -rf "$tmp"
|
||||||
@ -44,14 +44,19 @@ addShare() {
|
|||||||
local ref="$2"
|
local ref="$2"
|
||||||
local name="$3"
|
local name="$3"
|
||||||
local comment="$4"
|
local comment="$4"
|
||||||
|
local user="$5"
|
||||||
|
local group="$6"
|
||||||
|
|
||||||
mkdir -p "$dir" || return 1
|
mkdir -p "$dir" || return 1
|
||||||
ls -A "$dir" >/dev/null 2>&1 || return 1
|
ls -A "$dir" >/dev/null 2>&1 || return 1
|
||||||
|
|
||||||
if [ -z "$(ls -A "$dir")" ]; then
|
if [ -z "$(ls -A "$dir")" ]; then
|
||||||
chmod 777 "$dir" || return 1
|
chmod 777 "$dir" || return 1
|
||||||
fi
|
fi
|
||||||
|
if [ -z "$(ls -A "$share")" ]; then
|
||||||
|
chmod 0770 "$share" || { echo "Failed to set permissions for directory $share"; exit 1; }
|
||||||
|
chown "$USER:$group" "$share" || { echo "Failed to set ownership for directory $share"; exit 1; }
|
||||||
|
fi
|
||||||
if [[ "$dir" == "$tmp" ]]; then
|
if [[ "$dir" == "$tmp" ]]; then
|
||||||
|
|
||||||
{ echo "--------------------------------------------------------"
|
{ echo "--------------------------------------------------------"
|
||||||
@ -83,13 +88,27 @@ addShare() {
|
|||||||
echo " writable = yes"
|
echo " writable = yes"
|
||||||
echo " guest ok = yes"
|
echo " guest ok = yes"
|
||||||
echo " guest only = yes"
|
echo " guest only = yes"
|
||||||
echo " force user = $SAMBA_USER"
|
echo " force user = $user"
|
||||||
echo " force group = $SAMBA_GROUP"
|
echo " force group = $group"
|
||||||
} >> "/etc/samba/smb.conf"
|
} >> "/etc/samba/smb.conf"
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Setup user and group
|
||||||
|
if [[ "$SAMBA_UID" == "1000" ]]; then
|
||||||
|
SAMBA_USER="root"
|
||||||
|
else
|
||||||
|
SAMBA_USER="samba"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$SAMBA_GID" == "1000" ]]; then
|
||||||
|
SAMBA_GROUP="root"
|
||||||
|
else
|
||||||
|
SAMBA_GROUP="samba"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
{ echo "[global]"
|
{ echo "[global]"
|
||||||
echo " server string = Dockur"
|
echo " server string = Dockur"
|
||||||
echo " netbios name = $hostname"
|
echo " netbios name = $hostname"
|
||||||
@ -120,8 +139,8 @@ share="/shared"
|
|||||||
|
|
||||||
m1="Failed to add shared folder"
|
m1="Failed to add shared folder"
|
||||||
m2="Please check its permissions."
|
m2="Please check its permissions."
|
||||||
|
HHH
|
||||||
if ! addShare "$share" "/shared" "Data" "Shared"; then
|
if ! addShare "$share" "/shared" "Data" "Shared" "$SAMBA_USER" "$SAMBA_GROUP"; then
|
||||||
error "$m1 '$share'. $m2" && return 0
|
error "$m1 '$share'. $m2" && return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -148,6 +167,11 @@ for dir in "${dirs[@]}"; do
|
|||||||
addShare "$dir" "/shared" "$dir_name" "Shared $dir_name" || error "Failed to create shared folder for $dir!"
|
addShare "$dir" "/shared" "$dir_name" "Shared $dir_name" || error "Failed to create shared folder for $dir!"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Create directories if missing
|
||||||
|
mkdir -p /var/lib/samba/sysvol
|
||||||
|
mkdir -p /var/lib/samba/private
|
||||||
|
mkdir -p /var/lib/samba/bind-dns
|
||||||
|
|
||||||
# Try to repair Samba permissions
|
# Try to repair Samba permissions
|
||||||
[ -d /run/samba/msg.lock ] && chmod -R 0755 /run/samba/msg.lock 2>/dev/null || :
|
[ -d /run/samba/msg.lock ] && chmod -R 0755 /run/samba/msg.lock 2>/dev/null || :
|
||||||
[ -d /var/log/samba/cores ] && chmod -R 0700 /var/log/samba/cores 2>/dev/null || :
|
[ -d /var/log/samba/cores ] && chmod -R 0700 /var/log/samba/cores 2>/dev/null || :
|
||||||
|
Loading…
Reference in New Issue
Block a user