From 54a6171807b71f88aa20466f7be1c62734a49fda Mon Sep 17 00:00:00 2001 From: Alexandre <44178713+alexbelgium@users.noreply.github.com> Date: Mon, 22 Aug 2022 09:48:07 +0200 Subject: [PATCH] Uses PUID and PGID to mount smb shares https://github.com/alexbelgium/hassio-addons/issues/433 --- .templates/92-smb_mounts.sh | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/.templates/92-smb_mounts.sh b/.templates/92-smb_mounts.sh index 9e6efb60c..55ea12dc4 100644 --- a/.templates/92-smb_mounts.sh +++ b/.templates/92-smb_mounts.sh @@ -24,6 +24,15 @@ if bashio::config.has_value 'networkdisks'; then DOMAIN="" fi + # Mount using UID/GID values + if bashio::config.has_value 'PUID' && bashio::config.has_value 'PGID'; then + PUID=",uid=$(bashio::config 'PUID')" + PGID=",gid=$(bashio::config 'PGID')" + else + PUID="" + PGID="" + fi + # Mounting disks # shellcheck disable=SC2086 for disk in ${MOREDISKS//,/ }; do # Separate comma separated values @@ -46,14 +55,14 @@ if bashio::config.has_value 'networkdisks'; then # Tries to mount with default options # shellcheck disable=SC2140 - mount -t cifs -o rw,username="$CIFS_USERNAME",password="${CIFS_PASSWORD}$DOMAIN" "$disk" /mnt/"$diskname" 2>ERRORCODE && MOUNTED=true || MOUNTED=false + mount -t cifs -o rw,username="$CIFS_USERNAME",password="${CIFS_PASSWORD}$DOMAIN$PUID$PGID" "$disk" /mnt/"$diskname" 2>ERRORCODE && MOUNTED=true || MOUNTED=false # if Fail test different smb and sec versions if [ "$MOUNTED" = false ]; then for SMBVERS in ",vers=3" ",vers=1.0" ",vers=2.1" ",vers=3.0" ",nodfs" ",uid=0,gid=0,forceuid,forcegid" ",noforceuid,noforcegid" ",${DOMAIN:-WORKGROUP}" ",noserverino"; do - mount -t cifs -o "rw,file_mode=0777,dir_mode=0777,username=$CIFS_USERNAME,password=${CIFS_PASSWORD}$SMBVERS" "$disk" /mnt/"$diskname" 2>/dev/null && MOUNTED=true && break || MOUNTED=false + mount -t cifs -o "rw,file_mode=0777,dir_mode=0777,username=$CIFS_USERNAME,password=${CIFS_PASSWORD}$SMBVERS$PUID$PGID" "$disk" /mnt/"$diskname" 2>/dev/null && MOUNTED=true && break || MOUNTED=false for SECVERS in ",sec=ntlmi" ",sec=ntlmv2" ",sec=ntlmv2i" ",sec=ntlmssp" ",sec=ntlmsspi" ",sec=ntlm" ",sec=krb5i" ",sec=krb5" ",iocharset=utf8" ",noserverino"; do - mount -t cifs -o "rw,file_mode=0777,dir_mode=0777,username=$CIFS_USERNAME,password=${CIFS_PASSWORD}$SMBVERS$SECVERS" "$disk" /mnt/"$diskname" 2>/dev/null && MOUNTED=true && break 2 && break || MOUNTED=false + mount -t cifs -o "rw,file_mode=0777,dir_mode=0777,username=$CIFS_USERNAME,password=${CIFS_PASSWORD}$SMBVERS$SECVERS$PUID$PGID" "$disk" /mnt/"$diskname" 2>/dev/null && MOUNTED=true && break 2 && break || MOUNTED=false done done fi