Se o seu sistema estiver busybox
instalado, você poderá usá-lo para devolver as coisas.
busybox
é um binário com muitos utilitários padrão embutidos nele. As coisas tais como mv
, sh
, ls
, etc.
Do seu comentário sobre a resposta de Pavel, parece que tudo acabou /var
. Você pode tentar fazer /var/bin/busybox mv /var/{bin,etc,lib32,lib64,root,sbin,usr} /
. Isso deve tornar a maior parte do seu sistema operacional novamente. Existem alguns diretórios, como os /tmp
que também existem /var/tmp
, então você não pode simplesmente movê-los. Espero que tenham sido os que mv
reclamaram e foram deixados em paz.
Obtendo um shell raiz
Você também mencionou que perdeu o shell raiz e isso su
está causando um ld-linux
erro de biblioteca. Você pode usar o seguinte:
LD_LIBRARY_PATH=/var/lib64 /var/lib64/ld-linux-x86-64.so.2 /var/bin/su
Nota: Ao tentar isso, ele não funciona. Isso ocorre porque su
requer vários arquivos /etc
( passwd
, pam.d
e outros). Se /etc
ainda estivesse intacto, isso teria uma boa chance de sucesso.
Sem ocupado
Se você não tiver o busybox disponível, poderá usar o mesmo truque do ld-linux como para su
:
LD_LIBRARY_PATH=/var/lib64 /var/lib64/ld-linux-x86-64.so.2 /var/bin/mv /var/{bin,etc,lib32,lib64,root,sbin,usr} /
De um CD ao vivo
Como discutido nos comentários, se você perdeu o shell raiz, está praticamente travado. Basicamente, para corrigir isso, você precisa de privilégios de root. A única maneira de chegar lá é ter um utilitário como su
ou sudo
aumentar suas permissões (que não são funcionais neste momento) ou seqüestrar outro programa que já esteja sendo executado como root (dependendo do que está sendo executado, provavelmente não é possível).
Isso deixa a única opção de ser um CD ao vivo. Depois de inicializado em um CD ao vivo (ou USB ao vivo, ou qualquer outra coisa), basta montar o volume raiz e mover os diretórios afetados de /var
volta à sua casa original /
.
Sinopse do que aconteceu
folder/*
teria expandido para algo como folder/foo
e folder/bar
.
/*
teria expandido para algo como /bin
/lib32
/lib64
/etc
/home
/root
/var
. Observando que /var
é o último item.
Portanto, quando o shell expandisse todos esses globs, ele teria algo assim:
mv folder/foo folder/bar /bin /lib32 /lib64 /etc /home /root /var
Como /var
é o último item da lista, tudo foi movido para ele.
Por que /var/bin/su
erros com/lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
Quase todos os binários no linux estão dinamicamente vinculados ld-linux
. ld-linux
é a biblioteca responsável por carregar as outras bibliotecas necessárias por um binário. No seu sistema, isso mora em /lib64/ld-linux-x86-64.so.2
. Desde que este diretório foi movido, qualquer executável vinculado dinamicamente não funcionará mais.
O motivo pelo qual o busybox funciona é que o busybox está vinculado estaticamente. Não usa ld-linux
.
/var/bin/su
diretamente?