O carregador do Linux (ld.so) segue links simbólicos?

3

Eu tropecei em um problema tentando mover o arquivo ld.so.cache para outro local. Eu tentei criar um link simbólico para ele em sua localização anterior - /etc/ - mas parece que o carregador não pode seguir este symlink. Além disso, um link físico não é viável, pois o novo local está em outra partição.

Meu propósito final é ter um sistema de arquivos raiz somente de leitura e esta é talvez a última coisa que me impede disso.

Obrigado antecipadamente!

    
por emmerich 18.06.2014 / 10:39

1 resposta

2

Posso confirmar que, pelo menos na Glibc, ld.so segue os links simbólicos ao abrir /etc/ld.so.cache . O código está em elf/dl-cache.c na função _dl_load_cache_lookup , referenciando a função _dl_sysdep_read_whole_file de elf/dl-misc.c . Essa função abre o arquivo e o mapeia na memória; não faz nada sobre links simbólicos.

Evitar links simbólicos exigiria um esforço extra, e não consigo pensar em nenhum motivo pelo qual o carregador faria isso.

Para depurar seu problema, você pode usar strace para seguir quais arquivos o carregador está lendo ou tentando ler.

    
por 19.06.2014 / 03:12