Se il tuo sistema è busybox
installato, puoi usarlo per rimettere le cose.
busybox
è un file binario con molte utility standard integrate. Cose come mv
, sh
, ls
, etc.
Dal tuo commento sulla risposta di Pavel, sembra che tutto sia finito /var
. Puoi provare a farlo /var/bin/busybox mv /var/{bin,etc,lib32,lib64,root,sbin,usr} /
. Ciò dovrebbe rendere nuovamente operativa la maggior parte del sistema. Ci sono alcune directory come quelle /tmp
che esistono anche come /var/tmp
, quindi non puoi semplicemente spostarle. Spero che siano quelli che si sono mv
lamentati e sono stati lasciati soli.
Ottenere una shell di root
Hai anche detto che hai perso la shell di root e che su
ti dà un ld-linux
errore di libreria. Potresti essere in grado di utilizzare quanto segue:
LD_LIBRARY_PATH=/var/lib64 /var/lib64/ld-linux-x86-64.so.2 /var/bin/su
Nota: al momento del tentativo, non funziona. Questo perché su
richiede diversi file in /etc
( passwd
, pam.d
, e altri). Se /etc
fosse ancora intatto, ciò avrebbe buone probabilità di successo.
Senza busybox
Se non disponi di busybox, potresti essere in grado di usare lo stesso trucco di ld-linux di 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} /
Da un CD live
Come discusso nei commenti, se hai perso la shell di root, sei praticamente bloccato. Fondamentalmente per risolvere questo problema hai bisogno dei privilegi di root. L'unico modo per arrivarci è disporre di un'utilità come su
o sudo
aumentare le autorizzazioni (entrambe non funzionanti a questo punto) o dirottare un altro programma già in esecuzione come root (a seconda di ciò che è in esecuzione, probabilmente non possibile).
Questo lascia l'unica opzione a essere un CD live. Una volta avviato su un live CD (o live USB, o qualsiasi altra cosa), basta montare il volume di root e spostare le directory interessate dal /var
retro alla loro home originale /
.
Sinossi di quello che è successo
folder/*
si sarebbe esteso a qualcosa come folder/foo
e folder/bar
.
/*
si sarebbe esteso a qualcosa del genere /bin
/lib32
/lib64
/etc
/home
/root
/var
. Notando che /var
è l'ultimo elemento.
Quindi quando la shell ha esteso tutti quei globs, avrebbe funzionato in questo modo:
mv folder/foo folder/bar /bin /lib32 /lib64 /etc /home /root /var
Come /var
è l'ultimo elemento nell'elenco, tutto è stato spostato in esso.
Perché /var/bin/su
errori con/lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
Quasi tutti i binari in Linux sono dinamicamente collegati ld-linux
. ld-linux
è la libreria responsabile del caricamento delle altre librerie necessarie a un binario. Sul tuo sistema questo vive /lib64/ld-linux-x86-64.so.2
. Da quando questa directory è stata spostata, qualsiasi eseguibile collegato dinamicamente non funzionerà più.
Il motivo per cui busybox funziona è che busybox è staticamente collegato. Non usa ld-linux
.
/var/bin/su
direttamente?