grundsystem: Datei-Capabilities wiederherstellen

Golden Image und Installer verloren security.capability (ping ohne
cap_net_raw auf Liebherr-83). Liste aus den setcap-Aufrufen der postinst-
Skripte der Images: ping, mtr-packet, gst-ptp-helper, snap-confine (aus
.caps), sssd-Helfer. Setzt nur bei Abweichung (setcap -v), im User-
Namespace getestet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
adminandClaude Opus 5.5 committed 2026-10-15 14:05:41 +02:00
1 parent b902527962
commit 586f17a2fb
2 files changed
+63

No files matched your search

+54
View File
@@ -0,0 +1,54 @@
#!/bin/bash
# Datei-Capabilities wiederherstellen (Rolle grundsystem, 15.10.2026).
#
# Befund (Nutzer, Liebherr-83): ping ging für normale Benutzer nicht
# ("socktype SOCK_RAW ... missing cap_net_raw+p"), getcap /usr/bin/ping leer,
# ping_group_range "1 0". Ursache: Capabilities liegen im xattr
# security.capability, und GNU tar übernimmt beim Auspacken ohne
# --xattrs-include='*' nur user.*. Das Golden Image verlor sie schon beim
# Packen (Staging-Auspacken in package_golden_image.sh), der Installer
# (image_deploy.sh) entpackte zusätzlich ganz ohne --xattrs. Betroffen sind
# alle bisher installierten Geräte.
#
# Die Liste stammt aus den postinst-Skripten der Golden Images (setcap-
# Aufrufe, 15.10.2026 auf anode ausgelesen). iproute2 fehlt bewusst: dessen
# postinst entfernt Capabilities standardmäßig (debconf iproute2/setcaps).
# Gesetzt wird nur, wo die Datei existiert und der Wert abweicht
# (setcap -v); Ausgabe "gesetzt: <datei>" je Änderung, für changed_when.
set -u
command -v setcap >/dev/null 2>&1 || exit 0
soll() {
local datei caps
datei="$(readlink -f "$1" 2>/dev/null)" || return 0
caps="$2"
[[ -f "${datei}" ]] || return 0
setcap -v "${caps}" "${datei}" >/dev/null 2>&1 && return 0
if setcap "${caps}" "${datei}"; then
echo "gesetzt: ${datei} ${caps}"
else
echo "FEHLER: ${datei} ${caps}" >&2
fi
}
# iputils-ping, mtr-tiny (Mint, Ubuntu)
soll /usr/bin/ping cap_net_raw+ep
soll /usr/bin/mtr-packet cap_net_raw+ep
# libgstreamer1.0-0 (PTP-Zeitsynchronisation)
soll /usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-ptp-helper \
cap_sys_nice,cap_net_bind_service,cap_net_admin+ep
# snapd (Ubuntu): Werte aus der Datei des installierten Pakets
if [[ -f /usr/lib/snapd/snap-confine.caps ]]; then
soll /usr/lib/snapd/snap-confine "$(tr -d '\n' < /usr/lib/snapd/snap-confine.caps)"
fi
# sssd (Ubuntu, AD-Anbindung)
soll /usr/libexec/sssd/sssd_pam cap_dac_read_search=p
soll /usr/libexec/sssd/ldap_child cap_dac_read_search=p
soll /usr/libexec/sssd/krb5_child cap_dac_read_search,cap_setuid,cap_setgid=p
soll /usr/libexec/sssd/selinux_child cap_setuid,cap_setgid=p
exit 0
+9
View File
@@ -26,6 +26,9 @@
# Bei laufendem systemd-resolved wieder auf dessen Stub verweisen. Ohne
# systemd-resolved (Debian-Image) bleibt die Datei unangetastet, die
# verwaltet dort NetworkManager selbst.
# 4. Datei-Capabilities (15.10.2026): Golden Image und Installer verloren
# das xattr security.capability (ping ohne cap_net_raw, Liebherr-83);
# wiederherstellen, siehe files/capabilities-reparieren.sh.
- name: Determine golden image package list for this distribution
ansible.builtin.set_fact:
@@ -110,3 +113,9 @@
dest: /etc/resolv.conf
state: link
force: true
- name: Datei-Capabilities wiederherstellen (Image/Installer ohne security.* bis 15.10.2026)
ansible.builtin.script: capabilities-reparieren.sh
register: tuxflotte_grundsystem_caps
changed_when: "'gesetzt:' in tuxflotte_grundsystem_caps.stdout"