From 6279a20d4a9b6f7e5bf0ea6f312c601bec264c09 Mon Sep 17 00:00:00 2001 From: duffyduck Date: Fri, 31 Jul 2026 21:35:51 +0200 Subject: [PATCH] Austauschlaufwerk war fuer den Benutzer im Gast nicht beschreibbar ext4 speichert Besitzer und Rechte auf dem Datentraeger. Das Wurzelverzeichnis gehoerte root, weil der Host es angelegt hat - im Gast sitzt davor aber ein gewoehnlicher Benutzer, der dann nichts hineinschreiben kann. Das sieht aus wie ein schreibgeschuetzter Datentraeger, ist aber eine Rechtefrage. Das Wurzelverzeichnis wird beim Anlegen jetzt auf 0777 gesetzt - in beiden Wegen, dem alten --exchange und den neuen Transfer-Laufwerken. Bei exFAT und FAT laeuft das ins Leere, weil sie ueberhaupt keine Besitzrechte kennen; dort entscheidet der Einhaengevorgang, und der Automounter im Gast setzt den angemeldeten Benutzer als Eigentuemer. Genau deshalb ist exFAT auch fuer Linux-Gaeste die unkompliziertere Wahl. vorher drwxr-xr-x root -> Benutzer im Gast kann nur lesen nachher drwxrwxrwx root -> schreiben moeglich Co-Authored-By: Claude Opus 5 (1M context) --- pvesnap/recovery.py | 7 +++++++ pvesnap/transfer.py | 9 +++++++++ 2 files changed, 16 insertions(+) diff --git a/pvesnap/recovery.py b/pvesnap/recovery.py index ca6e67f..fb929d5 100644 --- a/pvesnap/recovery.py +++ b/pvesnap/recovery.py @@ -1211,6 +1211,13 @@ def _place_readme(device, fstype): log.debug("Anleitung nicht ablegbar: %s", exc) return try: + # Ohne das gehoert das Wurzelverzeichnis root, und ein gewoehnlicher + # Benutzer im Gast kann nichts hineinschreiben - was sich anfuehlt wie + # ein schreibgeschuetzter Datentraeger, aber keiner ist. + try: + os.chmod(mountpoint, 0o777) + except OSError: + pass with open(os.path.join(mountpoint, "LIESMICH.txt"), "w", encoding="utf-8") as handle: handle.write(README) diff --git a/pvesnap/transfer.py b/pvesnap/transfer.py index 8c47e48..97fb26a 100644 --- a/pvesnap/transfer.py +++ b/pvesnap/transfer.py @@ -514,6 +514,15 @@ def _place_readme(device, fs, label): log.debug("Anleitung nicht ablegbar: %s", exc) return try: + # Sonst gehoert das Wurzelverzeichnis root - und im Gast sitzt davor + # ein gewoehnlicher Benutzer, der nichts hineinschreiben kann. Das + # sieht dann aus wie ein schreibgeschuetzter Datentraeger, ist aber + # eine Rechtefrage. Bei exFAT und FAT laeuft chmod ins Leere, weil sie + # ueberhaupt keine Besitzrechte kennen - dort ist es ohnehin egal. + try: + os.chmod(mountpoint, 0o777) + except OSError: + pass with open(os.path.join(mountpoint, "LIESMICH.txt"), "w", encoding="utf-8") as handle: handle.write(README % label)