Linux 載入程式 (ld.so) 是否遵循符號連結?

Linux 載入程式 (ld.so) 是否遵循符號連結?

我嘗試將 ld.so.cache 檔案移動到另一個位置時偶然發現了一個問題。我嘗試在其先前的位置為其創建一個符號鏈接 -- /etc/-- 但加載程序似乎無法遵循此符號鏈接。此外,硬連結也不可行,因為新位置位於另一個分割區上。

我的最終目的是擁有一個只讀根檔案系統,這可能是阻止我這樣做的最後一件事。

先感謝您!

答案1

我可以確認,至少在 Glibc 中,ld.so打開/etc/ld.so.cache.代碼在elf/dl-cache.c在函數中,引用_dl_load_cache_lookup函數_dl_sysdep_read_whole_fileelf/dl-misc.c。該函數打開文件並將其映射到記憶體中;它對符號連結沒有任何作用。

避免符號連結需要額外的努力,我想不出任何載入程式會這樣做的原因。

要偵錯您的問題,您可以使用strace追蹤載入程式正在讀取或嘗試讀取的檔案。

相關內容