Fehler bei Package-Installation ("invalid argument" von tar wegen zu großer UID / GID)

Antworten
mpice-mn
Beiträge: 9
Registriert: 01 Nov 2017, 18:08

Fehler bei Package-Installation ("invalid argument" von tar wegen zu großer UID / GID)

Beitrag von mpice-mn »

Was sollte passieren?
Package-Installation per opsi-package-update oder opsi-package-manager.

Was ist passiert?
Abbruch mit Fehlermeldung:

Code: Alles auswählen

Apr 26 12:01:40 Error occurred: Failed to get metadata from package '/var/lib/opsi/repository/o4i_audacity_3.3.0-7.opsi': Failed to extract archive '/tmp/.opsi.unpack.bxHRO/OPSI/OPSI.tar.gz': Command '/bin/tar --use-compress-program=pigz --directory "/tmp/.opsi.unpack.bxHRO/OPSI" --extract --verbose --file "/tmp/.opsi.unpack.bxHRO/OPSI/OPSI.tar.gz"' failed with code 2: b'/bin/tar: readme.md: Cannot change ownership to uid 20498, gid 407350: Invalid argument\n/bin/tar: control: Cannot change ownership to uid 20498, gid 407350: Invalid argument\n/bin/tar: changelog.txt: Cannot change ownership to uid 20498, gid 407350: Invalid argument\n/bin/tar: postinst: Cannot change ownership to uid 993, gid 407350: Invalid argument\n'
Mit welchen Schritten kann das Problem nachgestellt werden?
Das Problem tritt auf, wenn der OPSI-Server in einem Container ausgeführt wird, bei dem die UIDs / GIDs beschränkt sind (bei uns maximal 65536).

Manche Pakete wurden offenbar durch einen Benutzer mit größerer UID/GID angelegt als in unserem Container erlaubt, z.B. im Audacity-Paket von https://repo.o4i.de/public/.

Code: Alles auswählen

sudo opsi-package-manager --install o4i_audacity_3.3.0-7.opsi
Bei welche Versionen der beteiligten Komponenten tritt das Problem auf?

Code: Alles auswählen

opsi-atftpd     0.7.dfsg-7
opsi-configed   4.0.7.6.34-2
opsi-linux-bootimage    20230328-1
opsi-linux-support      4.2.0.0-1
opsi-server     4.1.1.8-1
opsi-server-full        4.2.0.72-1
opsi-tftpd-hpa  5.2.8-78
opsi-utils      4.2.0.201-1
opsi-windows-support    4.2.0.3-1
opsiconfd       4.2.0.306-1
opsipxeconfd    4.2.0.32-1
Lösungsvorschlag:
Ein ähnliches Problem gab es früher schonmal mit cpio: viewtopic.php?p=45939&hilit=owner#p45939

Offenbar wird jetzt stattdessen "tar" bei einigen Paken benutzt. Dort gibt es beim Extrahieren die Option "--no-same-owner", welche vermutlich das Problem behebt. Es lässt sich mit "tar" in der Kommandozeile nachstellen ("OPSI.tar.gz" kommt aus dem oben erwähnten Audacity-Paket):

Code: Alles auswählen

# sudo tar xf OPSI.tar.gz
tar: preinst: Cannot change ownership to uid 993, gid 407350: Invalid argument
[...]
# sudo tar xf OPSI.tar.gz --no-same-owner
# OK!
thomas.besser
Beiträge: 461
Registriert: 09 Sep 2009, 09:40

Re: Fehler bei Package-Installation ("invalid argument" von tar wegen zu großer UID / GID)

Beitrag von thomas.besser »

Moin,

das Problem trat auf, da zwei eher seltene Faktoren aufeinander getroffen sind:
  • Verwendung eines Containers mit Beschränkung auf einer maximalen UID/GID
  • OPSI-Paket mit TAR anstatt CPIO in Kombination mit einer sehr hohen UID/GID (aufgrund LDAP-Einbindung des OPSI-Servers, auf dem das Paket erstellt wurde)
Das Problem wurde von UIB in 'opsi-utils' gefixt, zukünftige Pakete (zumindest von mir) werden mit einer UID/GID = nobody/nogroup eingepackt werden, die normalerweise als 65534/65534 auf einem Linux-System sein sollte.

Gruß
Thomas
Antworten