smb.conf:
[homes] ... root preexec = /users/.create_home.sh '%S'
I lost the one that I was using. -- CyberLeo
createhome.sh:
#!/bin/sh -e pebkac() { echo "Usage: $(basename "${0}") <username>" >&2 echo "" >&2 echo "Create the zfs home directories for the given user if they do not exist." >&2 exit 1 } fsbase="$(realpath "$(dirname "${0}")")" zpbase="$(mount | grep ' on '"${fsbase}"' ' | cut -d' ' -f1)" user="${1}" [ "${user}" ] || pebkac zpuser="${zpbase}/${user}" fsuser="${fsbase}/${user}" [ ! -e "${fsuser}" ] || exit 0 fspublic="${fsuser}/Public" fsprivate="${fsuser}/Private" fsdropbox="${fsuser}/DropBox" fsrecycle="${fsuser}/.recycle" zfs create "${zpuser}" mkdir -p "${fspublic}" chmod 755 "${fspublic}" mkdir -p "${fsprivate}" chmod 700 "${fsprivate}" mkdir -p "${fsdropbox}" chmod 1777 "${fsdropbox}" mkdir -p "${fsrecycle}" chmod 777 "${fsrecycle}" chown -R "${user}" "${fsuser}"