O vinculador dinâmico pode ser executado indiretamente executando algum programa vinculado dinamicamente ou objeto compartilhado (nesse caso, nenhuma opção de linha de comando para o vinculador dinâmico pode ser passada e, no caso ELF, o vinculador dinâmico que é armazenado no arquivo .interp seção do programa é executada) ou diretamente executando:
/lib/ld-linux.so.* [OPÇÕES] [PROGRAMA [ARGUMENTOS]]
https://jlk.fjfi.cvut.cz/arch/manpages/man/core/man-pages/ld.so.8.en
Informações semelhantes podem ser encontradas em Program Library HOWTO .
Mas quando eu tento,
$ LD_DEBUG=libs /usr/lib/ld-linux.so.2 ls
23325: find library=ls [0]; searching
23325: search cache=/etc/ld.so.cache
23325:
ls: error while loading shared libraries: ls: cannot open shared object file
$ LD_DEBUG=libs ls
23503: find library=libcap.so.2 [0]; searching
23503: search cache=/etc/ld.so.cache
23503: trying file=/usr/lib/libcap.so.2
...
O que estou fazendo errado? Existe uma maneira de usar ld-linux.so
diretamente para executar um programa?
Tente usar o caminho completo para
ls
: