diff --git a/roles/lmn_mount/tasks/main.yml b/roles/lmn_mount/tasks/main.yml
index ff633c8..195e85e 100644
--- a/roles/lmn_mount/tasks/main.yml
+++ b/roles/lmn_mount/tasks/main.yml
@@ -12,11 +12,11 @@
- name: Configure pam_mount for LMN homes
blockinfile:
dest: /etc/security/pam_mount.conf.xml
- marker: ""
+ marker: ""
block: |
-
+
rootansibleDebian-gdmsddmvirti
+ >rootansibleDebian-gdmsddmvirti
+
insertafter: ""
- name: Create /etc/linuxmuster-linuxclient7 Directory
diff --git a/roles/lmn_vm/files/pam-umount.sh b/roles/lmn_vm/files/pam-umount.sh
new file mode 100644
index 0000000..d6a33df
--- /dev/null
+++ b/roles/lmn_vm/files/pam-umount.sh
@@ -0,0 +1,40 @@
+#!/usr/bin/bash
+#
+# /usr/local/sbin/pam-umount.sh %(USER) %(USERUID) %(MNTPT)'
+
+set -eu
+
+LANG=C
+usr="$1"
+uid="$2"
+mtp="$3"
+
+lmuh="/lmn/media/$usr/home"
+lmus="/lmn/media/$usr/share"
+
+for VMname in $(sudo -u $usr XDG_RUNTIME_DIR="/run/user/$uid" \
+ virsh list --state-running | grep running | awk '{print $2}'); do
+ sudo -u $usr XDG_RUNTIME_DIR="/run/user/$uid" virsh destroy $VMname || true
+ sleep 1
+done
+#killall -9 virtiofsd
+
+if [[ "$mtp" =~ "/srv/samba/schools" ]] ; then
+ N=0
+ mh=true
+ ms=true
+ mountpoint -q $lmuh || mh=false
+ mountpoint -q $lmus || ms=false
+ while [[ $N -lt 10 ]] && ([[ $mh = true ]] || [[ $ms = true ]]) ; do
+ if [[ $mh = true ]] ; then
+ umount "$lmuh" && mh=false
+ fi
+ if [[ $ms = true ]] ; then
+ umount "$lmus" && ms=false
+ fi
+ N=$((N + 1))
+ sleep 1
+ done
+ systemd-cat echo "Tried $N umount(s)."
+fi
+exec umount "$mtp"
diff --git a/roles/lmn_vm/files/u-mount.sh b/roles/lmn_vm/files/u-mount.sh
deleted file mode 100644
index 9537167..0000000
--- a/roles/lmn_vm/files/u-mount.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/usr/bin/bash
-#
-# /usr/local/sbin/u-mount.sh %(USER) %(USERUID) %(MNTPT) %(FSTYPE) %(OPTIONS) %(SERVER) %(VOLUME)'
-# /usr/local/sbin/u-mount.sh %(USER) %(USERUID) %(MNTPT)'
-
-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
diff --git a/roles/lmn_vm/tasks/main.yml b/roles/lmn_vm/tasks/main.yml
index 28658c2..7c4423c 100644
--- a/roles/lmn_vm/tasks/main.yml
+++ b/roles/lmn_vm/tasks/main.yml
@@ -14,19 +14,39 @@
# insertafter: '#auth_unix_rw = "polkit"'
# notify: reload libvirtd
-- name: Generate bind mounts for VMs in extra mount script
+- name: Configure pam_mount for VM bind mounts
blockinfile:
dest: /etc/security/pam_mount.conf.xml
marker: ""
block: |
- /usr/local/sbin/u-mount.sh %(USER) %(USERUID) %(MNTPT) %(FSTYPE) %(OPTIONS) %(VOLUME) "~"'
- /usr/local/sbin/u-mount.sh %(USER) %(USERUID) %(MNTPT)'
+
+ rootansibleDebian-gdmsddmvirti
+
+ rootansibleDebian-gdmsddmvirti
+
+ insertafter: ""
+
+- name: Use umount script for proper ordering
+ blockinfile:
+ dest: /etc/security/pam_mount.conf.xml
+ marker: ""
+ block: |
+
+ /usr/local/sbin/pam-umount.sh %(USER) %(USERUID) %(MNTPT)
insertafter: '^