51 lines
1.4 KiB
Bash
51 lines
1.4 KiB
Bash
#!/usr/bin/bash
|
|
#
|
|
# <cifsmount>/usr/local/sbin/u-mount.sh %(USER) %(USERUID) %(MNTPT) %(FSTYPE) %(OPTIONS) %(SERVER) %(VOLUME)</cifsmount>'
|
|
# <umount>/usr/local/sbin/u-mount.sh %(USER) %(USERUID) %(MNTPT)</umount>'
|
|
|
|
set -eu
|
|
|
|
systemd-cat echo $@
|
|
|
|
LANG=C
|
|
usr="$1"
|
|
uid="$2"
|
|
mtp="$3"
|
|
|
|
if [[ "$#" -gt 3 ]] ; then
|
|
## we are mounting
|
|
fty="$4"
|
|
opt="$5"
|
|
srv="$6"
|
|
vol="$7"
|
|
case "$fty" in
|
|
"davfs")
|
|
systemd-cat echo mount -t davfs -o "$opt" "$vol" "$mtp"
|
|
exec mount -t davfs -o "$opt" "$vol" "$mtp"
|
|
;;
|
|
"cifs")
|
|
if [[ ! "$vol" =~ "sysvol" ]] ; then
|
|
home="$(getent passwd "$usr" | cut -d : -f 6)"
|
|
vol="default-school/"
|
|
mount -t cifs -o "$opt" "//$srv/$vol" "$mtp"
|
|
mkdir -p "/lmn/media/$usr/share"
|
|
mkdir -p "/lmn/media/$usr/home"
|
|
mount -o bind "/srv/samba/schools/default-school/share" "/lmn/media/$usr/share"
|
|
exec mount -o bind "$home" "/lmn/media/$usr/home"
|
|
else
|
|
mount -t cifs -o "$opt" "//$srv/$vol" "$mtp"
|
|
fi
|
|
esac
|
|
else
|
|
# for VMname in $(sudo -u $user XDG_RUNTIME_DIR="/run/user/$uid" \
|
|
# virsh list --state-running | grep running | awk '{print $2}'); do
|
|
# sudo -u $user XDG_RUNTIME_DIR="/run/user/$uid" virsh destroy $VMname
|
|
# sleep 1
|
|
# done
|
|
#killall -9 virtiofsd
|
|
|
|
|
|
umount "/lmn/media/$usr/share" && rmdir "/lmn/media/$usr/share"
|
|
umount "/lmn/media/$usr/home" && rmdir "/lmn/media/$usr/home"
|
|
exec umount "$mtp"
|
|
fi
|