Si su sistema se ha busybox
instalado, puede usar esto para volver a poner las cosas.
busybox
es un binario con muchas utilidades estándar incorporadas. Las cosas tales como mv
, sh
, ls
, etc.
Por su comentario sobre la respuesta de Pavel, parece que todo terminó en /var
. Puedes intentar hacerlo /var/bin/busybox mv /var/{bin,etc,lib32,lib64,root,sbin,usr} /
. Eso debería volver a poner en funcionamiento la mayor parte de su sistema. Hay algunos directorios como los /tmp
que también existen como /var/tmp
, por lo que no puede simplemente moverlos. Con suerte, esos son los que se mv
quejaron y se quedaron solos.
Conseguir un shell de raíz
También mencionó que perdió su shell raíz, y eso le su
está dando un ld-linux
error de biblioteca. Es posible que pueda usar lo siguiente:
LD_LIBRARY_PATH=/var/lib64 /var/lib64/ld-linux-x86-64.so.2 /var/bin/su
Nota: Al intentar esto, no funciona. Esto se debe a que su
requiere varios archivos en /etc
( passwd
, pam.d
y otros). Si /etc
aún estuviera intacto, esto tendría una buena posibilidad de tener éxito.
Sin busybox
Si no tiene busybox disponible, es posible que pueda usar el mismo truco ld-linux que 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 un CD en vivo
Como se discutió en los comentarios, si ha perdido el shell raíz, está bastante atascado. Básicamente para solucionar esto, necesita privilegios de root. La única forma de llegar allí es tener una utilidad como su
o sudo
escalar sus permisos (ambos no son funcionales en este momento), o secuestrar otro programa que ya se está ejecutando como root (dependiendo de lo que se está ejecutando, no es posible).
Esto deja la única opción de ser un CD en vivo. Una vez arrancado en un CD en vivo (o USB en vivo, o lo que sea), simplemente monte el volumen raíz y mueva los directorios afectados de /var
regreso a su hogar original /
.
Sinopsis de lo sucedido
folder/*
se habría expandido a algo como folder/foo
y folder/bar
.
/*
se habría expandido a algo así /bin
/lib32
/lib64
/etc
/home
/root
/var
. Observando que /var
es el último artículo.
Entonces, cuando el caparazón expandió todos esos globos, habría corrido algo como esto:
mv folder/foo folder/bar /bin /lib32 /lib64 /etc /home /root /var
Como /var
es el último elemento de la lista, todo se movió a él.
¿Por qué /var/bin/su
errores con/lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
Casi todos los binarios en Linux están vinculados dinámicamente ld-linux
. ld-linux
es la biblioteca responsable de cargar las otras bibliotecas que necesita un binario. En su sistema esto vive en /lib64/ld-linux-x86-64.so.2
. Como este directorio se movió, cualquier ejecutable vinculado dinámicamente ya no funcionará.
La razón por la que busybox funciona es porque busybox está estáticamente vinculado. No utiliza ld-linux
.
/var/bin/su
directamente?