fix(diagnose): Quoting des Pfads im Lesbarkeitstest

This commit is contained in:
mm committed 2026-09-14 00:35:59 +02:00
1 parent 711d8bdc1d
commit 963546641b
1 file changed
+3 -1
+3 -1
View File
@@ -141,7 +141,9 @@ if [ "$DIAGNOSE" -eq 1 ]; then
if [ "$_size" -eq 0 ]; then printf ' LEER (0 B) %s\n' "$_f"; _empty=$((_empty+1)); continue; fi if [ "$_size" -eq 0 ]; then printf ' LEER (0 B) %s\n' "$_f"; _empty=$((_empty+1)); continue; fi
# Lesbarkeit aus Sicht des Dienst-Benutzers — das war die stille Fehlerquelle. # Lesbarkeit aus Sicht des Dienst-Benutzers — das war die stille Fehlerquelle.
if [ "$(id -u)" -eq 0 ] && command -v su >/dev/null 2>&1 && id "$DBU" >/dev/null 2>&1; then if [ "$(id -u)" -eq 0 ] && command -v su >/dev/null 2>&1 && id "$DBU" >/dev/null 2>&1; then
if su -s /bin/sh "$DBU" -c "head -c 1 '$(_f//\'/\'})' >/dev/null 2>&1"; then # Dateiname fuer die Shell quoten (Pfade koennen Sonderzeichen haben)
_q="$(printf '%s' "$_f" | sed "s/'/'\\\\''/g")"
if su -s /bin/sh "$DBU" -c "head -c 1 '$_q' >/dev/null 2>&1"; then
printf ' OK %s (%s Bytes)\n' "$_f" "$_size"; _ok=$((_ok+1)) printf ' OK %s (%s Bytes)\n' "$_f" "$_size"; _ok=$((_ok+1))
else else
printf ' NICHT LESBAR %s (Benutzer %s) ← URSACHE\n' "$_f" "$DBU"; _noread=$((_noread+1)) printf ' NICHT LESBAR %s (Benutzer %s) ← URSACHE\n' "$_f" "$DBU"; _noread=$((_noread+1))