Wie entferne ich einen Benutzer aus der Datei dpkg-statoverride?

Wie entferne ich einen Benutzer aus der Datei dpkg-statoverride?

Habe versucht, ein Paket zu installieren, nachdem ich einige Server gelöscht hatte, die ich nicht mehr brauchte, und die Benutzer und Gruppen des gelöschten Softwarepakets entfernt hatte. Beim Abrufen und Installieren eines neuen Pakets erhielt ich den folgenden Fehler.

user@localhost~$ sudo apt-get install any-package

... package installation output omitted for brevity ...

dpkg: unrecoverable fatal error, aborting:
syntax error: unknown user 'puppet' in statoverride file
E: Sub-process /usr/bin/dpkg returned an error code (2)

/usr/bin/dpkg-statoverride verfügt also über eine Option zum Entfernen eines Pfads, aber die Binärdatei gibt denselben Fehler aus, wenn ich versuche, sie außerhalb des gesamten apt-get-Installationskontexts auszuführen.

Also habe ich einfach die Benutzerpuppet hinzugefügt und kann wieder Pakete herunterladen, aber ich versuche, alle überflüssigen Elemente aus meinem Entwicklungssystem zu entfernen. Daher ist dies meiner Ansicht nach keine Lösung, nur weil es funktioniert.

Soweit ich das beurteilen kann, weist statoverride den Paketmanager an, bestimmte Dinge in einem bestimmten Pfad zu installieren, und manipuliert das Setuid-Flag. Dadurch könnten möglicherweise eine Reihe von Sicherheitslücken entstehen, indem Programme installiert werden, die einem nicht verwendeten Benutzer und einer nicht verwendeten Gruppe gemeinsam gehören. Gibt es einen Grund, warum dpkg-statoverride nicht mit dem Rest des Systems aktualisiert wird, wenn ein Benutzer entfernt wird? Und gibt es eine Möglichkeit, dies zu umgehen, sodass ich nicht jedes Mal, wenn ich ein Paket installieren möchte, :adduser -> install -> deluser: ausführen muss?

Antwort1

Sie können Folgendes versuchen:

sudo sed -i '/puppet/d' /var/lib/dpkg/statoverride

Sollte den Benutzer aus Statoverride entfernen und Ihnen erneut Zugriff zur Installation geben

verwandte Informationen