Folgt der Linux-Loader (ld.so) symbolischen Links?

Folgt der Linux-Loader (ld.so) symbolischen Links?

Ich bin auf ein Problem gestoßen, als ich versucht habe, die Datei ld.so.cache an einen anderen Ort zu verschieben. Ich habe versucht, an ihrem vorherigen Ort einen symbolischen Link dafür zu erstellen -- /etc/-- aber es scheint, dass der Loader diesem symbolischen Link nicht folgen kann. Außerdem ist ein Hardlink nicht möglich, da sich der neue Ort auf einer anderen Partition befindet.

Mein endgültiges Ziel ist ein schreibgeschütztes Root-Dateisystem und dies ist möglicherweise das letzte, was mich davon abhält.

Vielen Dank im Voraus!

Antwort1

Ich kann bestätigen, dass zumindest in Glibc ld.sobeim Öffnen symbolische Links befolgt werden /etc/ld.so.cache. Der Code ist inelf/dl-cache.cin der Funktion _dl_load_cache_lookup, die auf die Funktion verweist _dl_sysdep_read_whole_filevonelf/dl-misc.c. Diese Funktion öffnet die Datei und bildet sie im Speicher ab; sie macht nichts mit symbolischen Links.

Das Vermeiden symbolischer Links würde zusätzlichen Aufwand erfordern und mir fällt kein Grund ein, warum der Loader dies tun sollte.

Um Ihr Problem zu debuggen, können Sie straceverfolgen, welche Dateien der Loader liest oder zu lesen versucht.

verwandte Informationen