Ja, das tut es (zumindest in meiner VM), war mir vorher nicht bewusst:Artim hat geschrieben:14.01.2020 11:41:45Und JTH meinte ja dass das Paket das selbst machen würde.
Code: Alles auswählen
$ grep -r pam_mount /etc/pam.d
/etc/pam.d/common-session:session optional pam_mount.so
/etc/pam.d/common-password:password optional pam_mount.so disable_interactive
/etc/pam.d/common-auth:auth optional pam_mount.so
Okay, dann passt ja der Bind-Mount. Die Stelle in der pam_mount.xml passt.Artim hat geschrieben:13.01.2020 22:40:24Mein Eintrag sieht zwar etwas anders aus, sollte aber eigentlich seinen Zweck erfüllen, k.a. ob dein Ansatz das gleiche bewirkt, aber ich wäre zumindest nicht scharf drauf ein zweites tmpfs aufzumachen, wir haben "nur" 8 GB RAM:Das habe ich einfach unter <!-- Volume definitions --> gesetzt.Code: Alles auswählen
<volume path="/home/%(USER)/.cache" mountpoint="/tmp/" options="bind" />
Du hast allerdings die Argumente verdreht: Mountpoint sollte ~/.cache sein, zu mountender Pfad /tmp/…. So wie du geschrieben hast, würdest du allerdings das komplette /tmp bind-mounten. Ist das wirklich gewollt? Das dürfte ziemlich leicht zu Datenleaks und -konflikten führen, wenn mehr als ein Benutzer gleichzeitig oder nacheinander angemeldet sind.
Ich denke, ein Unterordner in /tmp ist sinnvoller:
Code: Alles auswählen
<volume path="/tmp/user-%(USER).cache" mountpoint="~/.cache" options="bind" />
pam_mount legt den Ordner in /tmp allerdings nicht an. Das könnte man über ein kleines Skript lösen:
Code: Alles auswählen
$ cat /usr/local/bin/pam-mkusercache
#!/bin/sh
set -eu
user_cache_dir="/tmp/user-${PAM_USER}.cache"
case "$PAM_TYPE" in
open_session)
/bin/mkdir -m0700 -p "$user_cache_dir"
/bin/chown "${PAM_USER}:${PAM_USER}" "$user_cache_dir"
;;
close_session)
# Optional: Cache leeren, wenn Benutzer *komplett* abgemeldet.
login_count="$(/usr/sbin/pmvarrun -u "$PAM_USER" -o 0)"
if [ "$login_count" -eq 1 ]; then
/bin/rm -fr "$user_cache_dir/"*
fi
;;
esac
Code: Alles auswählen
session optional pam_exec.so /usr/local/bin/pam-mkusercache
session optional pam_mount.so
Das ganze gilt auch für /root/.cache – falls das ausgenommen sein soll, kann man das in pam_mount.conf.xml und im Skript ergänzen.