Update fehlgeschlagen?!

Hallo,

ich habe heute sudo unter CentOS updaten wollen. Dabei ist folgende Fehlermeldung aufgetreten:

Code:
Dependencies Resolved

================================================================================
 Package       Arch          Version                     Repository        Size
================================================================================
Updating:
 sudo          i386          1.7.2p1-14.el5_8.2          updates          352 k

Transaction Summary
================================================================================
Install       0 Package(s)
Upgrade       1 Package(s)

Total download size: 352 k
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
 [B] Updating       : sudo                                                     1/2/var/tmp/rpm-tmp.80468: line 17: restorecon: command not found
Non-fatal POSTIN scriptlet failure in rpm package sudo-1.7.2p1-14.el5_8.2.i386
 
error: %post(sudo-1.7.2p1-14.el5_8.2.i386) scriptlet failed, exit status 127[/B]

Updated:

Complete!

Leider kann ich mit der Fehlermeldung überhaupt nichts anfangen. Kann mir da evtl. jemand weiterhelfen? War das update nun erfolgreiche oder sind weitere Schritte notwendig?

Vielen Dank im Voraus!
 
Offenbar ist in dem Paket ein sogenanntes Postinstall-Script, das zum Ende der Installation des Pakets ausgeführt wird. In diesem Fehler ist scheinbar ein Fehler aufgetreten, weil das Programm 'restorecon' nicht gefunden wurde. Soweit ich weiss ist restorecon Teil von SELinux. Evtl. hast du also SELinux nicht installiert oder dein $PATH ist so gesetzt, dass er die Datei nicht finden kann. Üblicherweise sollte sie in /sbin/ liegen.
 
Hallo bitmuncher,

vielen Dank für die schnelle Antwort. Dazu ein zwei Fragen:

1.) Bedeutet das, dass dieses Postinstall-Script nun nicht ausgeführt wurde? Und wenn ja, führt dies zu irgendwelche Einschränkungen/Problemen im System?
2.) Wie kann ich feststellen, ob ich SELinux installiert habe bzw. sollte ich es installieren? Bisher sind bei Updates niemals Fehlermeldungen in diese Richtung aufgetreten.
 
Ja, du kannst davon ausgehen, dass das Postinstall-Script abgebrochen wurde. Ob das entsprechende Paket installiert ist, in dem sich restorecon befindet, sollte mittels 'rpm' ermittelbar sein. Hab hier gerade keine RPM-basierten Systeme zur Hand um nachzuschauen wie das im Detail geht. Die Manpage zu rpm sollte aber weiterhelfen. Du kannst aber auch einfach mal in allen Standard-Pfaden (/bin, /usr/bin, /sbin, /usr/sbin, /usr/local/bin, /usr/local/sbin) nachschauen ob das Programm dort irgendwo zu finden ist.
 
Also SELinux scheint nicht installiert zu sein:

Code:
[root  ~]# sestatus
-bash: sestatus: command not found

Das entsprechende Paket für CentOS scheint policycoreutils zu sein. Auch dieses ist bei mir nicht installiert.

Dabei macht mich stutzig, dass laut wikipedia SELinux, also auch restorecon
...in Kernel 2.6.x ist SELinux direkt integriert.
sein sollte. Ist es aber nicht, obwohl ich Kernel 2.6.18-028stab091.2 on i686 verwende.

Sudo wurde aber auf die im Update angekündigte Version aktualisiert:

Code:
[root ~]# sudo -V
Sudo version 1.7.2p1

Weißt du, was in so einem Postinstall-Script i.d.R. ausgeführt wird? Ist es ratsam, die Installation zu wiederholen, wenn das Postinstall-Script nicht ausgeführt wurde?
 
Im Normalfall legen Postinstall-Scripte Dateien an, setzen die Rechte richtig, überprüfen die Syntax von Konfigurationen usw.. Es ist gerade bei sicherheitsrelevanten Tools wie sudo durchaus ratsam diese Scripte durchlaufen zu lassen, damit die Dateirechte stimmen.

Zu SELinux: Wenn SELinux im Kernel integriert ist, heisst das nicht automatisch, dass die SELinux-Tools installiert werden. "Im Kernel integriert" bedeutet lediglich, dass die entsprechende Konfigurationsoption des Kernels aktiviert wurde, so dass die zugehörigen Module und Schnittstellen in den Kernel eingebunden sind (der Kernel unterstützt dann z.B. das An- und Abschalten von SELinux mittels Kernel-Parameter selinux=0/1). Die zugehörigen Programme und Programmbibliotheken werden von fast allen Distros in extra Paketen ausgeliefert um Systeme, die SELinux nicht verwenden, nicht unnötig zuzumüllen.

Wenn ein Postinstall-Script fehlschlägt weil SELinux-Tools nicht installiert sind, wäre das aber durchaus eine Bug-Meldung beim Distributor wert (wenn es nicht bereits eine gibt). Entweder der Distributor macht dann die SELinux-Benutzung zur "Pflicht" oder er schreibt die Postinstall-Scripte so um, dass geprüft wird, ob SELinux-Tools installiert sind oder nicht, bevor entsprechende Befehle ausgeführt werden.

Deine Lösung: policycoreutils installieren und sudo reinstallieren. Bug-Report schreiben, wenn nötig.
 
Super bitmuncher! Unsere Konversation hilft mir sehr einige Sachen besser zu verstehen. Dafür schon mal vielen Dank!

Falls es dich interessiert: Nach meiner Google-Recherche habe ich folgenden bug in Red Hat Bugzilla gefunden (https://bugzilla.redhat.com/show_bug.cgi?id=818585). Anscheinend wurde bei einem vorherigen Update von Sudo die Datei nsswitch.conf zerschossen, welche bei dem aktuellen Update (welches ich installiert habe) mittels des restorecon Befehls wiederhergestellt werden soll. Da ich aber SELinux nicht nutze und auch policycoreutils nicht installiert habe, führt dies zu meiner Fehlermeldung...
 
Zurück
Oben