não pode sudo mv libtinfo.so.5.bak libtinfo.so.5

1

Uma hora atrás, eu mv /lib64/libtinfo.so.5 /lib64/libtinfo.so.5.bak , e os outros não podem ssh server. A mensagem de erro deles é assim:

-bash: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory Connection to 10.60.242.30 closed.

Eu quero alterar este arquivo de volta, sudo mv /lib64/libtinfo.so.5.bak /lib64/libtinfo.so.5

bash: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory

parece um impasse que sudo usaria libtinfo.so.5 .

Eu tentei LD_PRELOAD=./libtinfo.so.5.bak sudo mv /lib64/libtinfo.so.5.bak /lib64/libtinfo.so.5 , não funciona.

Alguém pode me ajudar?

    
por Anthony Cooper 16.08.2016 / 15:16

1 resposta

1

O mv falha porque sudo vê a lista de parâmetros e decide que é necessário um shell para interpretá-la. Alguns outros comandos simples podem funcionar (em uma verificação rápida, por exemplo, não vejo um intermediário sh ao fazer sudo visudo ). Se isso é verdade, você poderia escrever e compilar um programa simples que você executa usando sudo , por exemplo,

#include <stdlib.h>
int main(void)
{
    rename("/lib64/tinfo.5.bak", "/lib64/tinfo.5" );
    return 0;
}

Outra possibilidade seria um script, por exemplo, em Perl, que parece não ter dependência de ncurses:

$ ldd 'path perl'
        linux-vdso.so.1 =>  (0x00007ffd0f9f6000)
        libperl.so.5.14 => /usr/lib/libperl.so.5.14 (0x00007fcfc33ba000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fcfc31b6000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fcfc2f34000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fcfc2d18000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fcfc298b000)
        libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007fcfc2754000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fcfc373c000)

Se você tiver acesso físico ao servidor, uma solução alternativa como essa não é necessária (já que você pode carregar um DVD de recuperação e corrigi-lo offline). Se você não tiver, e tiver apenas acesso ssh (por exemplo, no Amazon AWS), você teria que usar uma solução alternativa como essa.

Leitura adicional:

por 16.08.2016 / 15:31

Tags