File Descriptor DEL bei Paket-Update

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Wraith
Beiträge: 40
Registriert: 20.05.2006 20:18:23

File Descriptor DEL bei Paket-Update

Beitrag von Wraith » 06.10.2013 00:16:31

Hi!

Bevor ich zu meinem Problem komme, moechte ich darauf hinweisen, dass es nicht einfach ist, das Problem bzw. meine Frage im Betreff wiederzugeben.

Zur Ausgangssituation:
  • Debian Wheezy
    Xfce
    Als Migrationstest in einer VM (VMware)
Bei meinem System haben die einzelnen Mounpoints verschiedene Optionen - absichtlich. U. a. wird '/usr' als Read-Only gemountet.

Mittels eines Shell-Scripts koennen entweder alle oder einzelne Mountpoints remountet werden (rw/ro bzw. exec/noexec bei '/var').

Installiere ich nunmehr unter Xfce oder auf dem blanken Terminal ein Paket, wird ein Alias ausgefuehrt (secmnt.sh -u -a && aptitude && secmnt.sh -l -a). Die Parameter des Scripts sind hier ohne belang. Kurz gesagt, es wird mit rw und exec remountet, Aptitude ausgefuehrt und wenn es beendet wird, mit ro und noexec alles erneut remountet. Das klappt soweit alles einwandfrei.

Kommen aber nun Security Updates ins Spiel, klappt es nicht mehr so unproblematisch. Sobald diese unter Xfce installiert wurden, kann '/usr' nicht mehr remountet werden (Fehlermeldung: "mount: /usr is busy"). Wird das Update auf dem Terminal - also kein X - ausgefuehrt, funktioniert auch alles.

Wenn ich nun die offenen Dateien (lsof) vergleiche, nachdem ich Aptitude wieder beende, dann faellt auf:
  • wird ein "normales" Paket installiert, erhalten die geoeffneten Xfce-Applikationen den File Descriptor "mem", "txt" o. ae.
  • wird hingegen ein Security Update ausgefuehrt, bekommen die Xfce-Applikationen den File Descriptor "DEL"
Wie oben bereits geschrieben, scheint Aptitude, sofern es unter X ausgefuehrt wird, nur bei Security Updates - vielleicht auch bei normalen Updates? - den File Descriptor der geoeffneten Applikationen zu aendern.

Mich wuerde zum Einen interessieren, warum der File Decsriptor geaendert wird und, ob man das irgendwie umgehen kann, um nicht jedesmal beim Einspielen von Updates X beenden zu muessen.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: File Descriptor DEL bei Paket-Update

Beitrag von rendegast » 06.10.2013 11:19:40

Ein "security update" ist formal ein gewöhnliches deb-Paket.
Das Repo hat eine gewöhnliche Priority, bis auf den Namen nichts Besonderes.
Die Pakete werden über ihre höhere Versionsnummer ausgewählt.

Es hängt mit den geöffneten Dateien / laufenden Prozessen zusammen.
Durch den rw-Remount bekommen die Prozesse wohl ein handle auf die noch alten Dateien.
Das muß erst beendet werden durch Neustart dieser Prozesse,
hier wohl Neustart der Xsession.
Dann ist der Dateiaustausch beendet, das Dateisystem wieder valide und kann somit wieder nur lesend remounted werden.

Mit Deiner Einrichtung hast Du Dich selbst in eine solche Problematik versetzt.


read-only-Mount ist ein schöner Gedanke.
Problem hier, /usr/ ist sowieso nur für root schreibbar.
Hat ein Angreifer root-Rechte, kann er sich ein ro-/usr/ auch selbst kurz rw setzen.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten