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: