From 97b9ba8d97201e2f07ea3f42a0faa4bd054eaf8f Mon Sep 17 00:00:00 2001 From: Raphael Dannecker Date: Tue, 18 Feb 2025 14:16:56 +0100 Subject: [PATCH] Shorten path for XDG_CONFIG_HOME and clean dir In Linux socket paths are limited to 108 char length. /var/tmp/vm/$UID/.config will be too long in some cases. So we use /var/tmp/vm/$UID /var/tmp/vm must be - cleaned on startup - created with sticky-bit (used by different users) --- roles/lmn_vm/files/pam-umount.sh | 4 ++-- roles/lmn_vm/files/vm-netboot | 2 +- roles/lmn_vm/files/vm-run | 2 +- roles/lmn_vm/tasks/main.yml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/roles/lmn_vm/files/pam-umount.sh b/roles/lmn_vm/files/pam-umount.sh index 952127a..7f9778f 100644 --- a/roles/lmn_vm/files/pam-umount.sh +++ b/roles/lmn_vm/files/pam-umount.sh @@ -13,12 +13,12 @@ slp=false shutdownVMs(){ local VM for VM in $(sudo -u $usr XDG_RUNTIME_DIR="/run/user/$uid" \ - XDG_CONFIG_HOME="/var/tmp/vm/$uid/.config" \ + XDG_CONFIG_HOME="/var/tmp/vm/$uid" \ XDG_CACHE_HOME="/var/cache/user/$uid/" \ virsh list --state-running | \ sed -nE "s/.*\s+(\S+)\s+running/\1/p") ; do sudo -u $usr XDG_RUNTIME_DIR="/run/user/$uid" \ - XDG_CONFIG_HOME="/var/tmp/vm/$uid/.config" \ + XDG_CONFIG_HOME="/var/tmp/vm/$uid" \ XDG_CACHE_HOME="/var/cache/user/$uid/" \ virsh destroy "$VM" 2>&1 | systemd-cat || true slp=true diff --git a/roles/lmn_vm/files/vm-netboot b/roles/lmn_vm/files/vm-netboot index 141f496..c21024f 100755 --- a/roles/lmn_vm/files/vm-netboot +++ b/roles/lmn_vm/files/vm-netboot @@ -5,7 +5,7 @@ set -eu ## Imporant for all virsh libvirt calls: -export XDG_CONFIG_HOME="/var/tmp/vm/${UID}/.config" +export XDG_CONFIG_HOME="/var/tmp/vm/${UID}" menu=(standard "CLI Standard Debian GNU/Linux NFS" standard-ram "CLI Standard Debian GNU/Linux RAM" diff --git a/roles/lmn_vm/files/vm-run b/roles/lmn_vm/files/vm-run index abacd42..1e29ab6 100755 --- a/roles/lmn_vm/files/vm-run +++ b/roles/lmn_vm/files/vm-run @@ -295,7 +295,7 @@ if [[ "${PERSISTENT}" == 1 ]] && [[ ! -f "${VM_DIR_PERSISTENT}/${VM_NAME}.qcow2" fi # because virsh has problems with long pathnames, using diffent configdir -export XDG_CONFIG_HOME="/var/tmp/vm/${UID}/.config" +export XDG_CONFIG_HOME="/var/tmp/vm/${UID}" if ! virsh --connect="${QEMU}" list | grep "${VM_NAME}-clone"; then echo "VM not yet running." diff --git a/roles/lmn_vm/tasks/main.yml b/roles/lmn_vm/tasks/main.yml index 16ff512..59201eb 100644 --- a/roles/lmn_vm/tasks/main.yml +++ b/roles/lmn_vm/tasks/main.yml @@ -144,7 +144,7 @@ ansible.builtin.copy: dest: /etc/tmpfiles.d/clean-vm.conf content: | - R! /var/tmp/vm + D /var/tmp/vm 1777 root root - - name: Install squid apt: