libc-austausch am beispiel linux-debian

durch die letztliche sicherheitslücke im openssl-stack
mussten 100te server upgedated werden. am einfachsten ist
hier, einfach die neuesten updates der distribution einzuspielen.
bei vielen servern kam dadurch auch ein libc- upgrade zu tragen.

da diese library doch sehr essentiell für ein unix/linux-betriebsystem
ist, lässt sich dies nicht ohne zugriff tauschen.

A copy of the C library was found in an unexpected directory:
'/lib/x86_64-linux-gnu/libc-2.1x.so'
It is not safe to upgrade the C library in this situation;
please remove that copy of the C library or get it out of
'/lib/x86_64-linux-gnu' and try again.

mittels auslagern und preloaden dieser an einem anderen ort,
ist dies mit ein paar schritten erledigt:

cp /lib/x86_64-linux-gnu/libc-2.1x.so /tmp/
cp /lib/x86_64-linux-gnu/libdl-2.1x.so /tmp/
cp /lib/x86_64-linux-gnu/libm-2.1x.so /tmp/
cp /lib/x86_64-linux-gnu/libpthread-2.1x.so /tmp/
cp /lib/x86_64-linux-gnu/librt-2.1x.so /tmp/

LD_PRELOAD=/tmp/libc-2.1x.so:/tmp/libdl-2.1x.so:/tmp/libm-2.1x.so:/tmp/libpthread-2.1x.so:/tmp/librt-2.1x.so bash

hier sind wir dann in einer single-bash, wo die libs im
tmp-ordner verwendet werden und die libs im lib-order entfernt werden können:

rm /lib/x86_64-linux-gnu/libc-2.1x.so
rm /lib/x86_64-linux-gnu/libdl-2.1x.sELOAD=/tmp/libc-2.1x.so
rm /lib/x86_64-linux-gnu/libm-2.1x.so
rm /lib/x86_64-linux-gnu/libpthread-2.1x.so
rm /lib/x86_64-linux-gnu/librt-2.1x.so

jetzt sind kurzzeitig alle daemons ausserhalb diese bash, welche die libs nutzen,
nicht funktionstüchtig, also schnell upgraden:

apt-get update
apt-get upgrade -f

nun kann die bash geschlossen werden und das system ist up und aktuell.