Acidentalmente apagado symlink libc.so.6 no CentOS 6.4. Como obter privilégio sudo para recriá-lo?

1

Eu apaguei acidentalmente o link do símbolo /lib64/libc.so.6 - > /lib64/libc-2.12.so com

$ sudo rm libc.so.6

Então eu não posso usar nada, incluindo o comando ls . O erro aparece para qualquer comando que eu digite

ls: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

Eu tentei

$ export LD_PRELOAD=/lib64/libc-2.12.so

Depois disso, posso usar ls e ln ... , mas ainda não posso usar sudo ln ... , sudo -E ln ... , sudo su ou mesmo su . Eu sempre entendo isso errado

sudo: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

ou

su: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

Parece que LD_PRELOAD funciona apenas para a sessão de shell atual da minha conta, mas não para uma nova conta como root ou uma nova sessão.

É um servidor remoto, então não posso usar um CD ao vivo. Agora tenho uma sessão de bash ssh viva, mas não consigo estabelecer novas. Eu tenho privilégio sudo, mas não tenho senha de root.

Atualmente, meu problema é que preciso executar sudo sln -s libc-2.12.so libc.so.6 para recriar o link simbólico libc.so.6 , mas não posso executar sudo sem libc.so.6 .

Como posso corrigir isso? Obrigado ~

    
por kangshiyin 30.06.2013 / 08:20

1 resposta

4

A melhor coisa a fazer neste caso, de longe, é inicializar o servidor usando um liveecd, montar as partições aplicáveis e criar o link simbólico (cuidado para que o link simbólico aponte para o lugar certo ao fazer isso, como se fosse aponta para um caminho absoluto diferente do que quando você está correndo, não será útil).

Eu não consigo pensar em um programa que você possa executar que não requeira libc, nem uma maneira de modificar o ambiente do root sem raiz (por design, o último é impossível).

Além disso, você deve realmente desvincular a chave da macro que tem sudo rm /lib64/libc.so.6 , digite sua senha e digite a senha. Eu consigo pensar em apenas alguns pressionamentos de tecla mais inconvenientes.

No entanto, como última tentativa, tente usar su sem opções, o que preserva a maior parte do seu ambiente e define seu UID como root.

Você também pode criar o symlink no diretório de trabalho atual e executar as coisas, embora isso nem sempre funcione.

    
por 30.06.2013 / 08:32