Nếu hệ thống của bạn đã busybox
được cài đặt, bạn có thể sử dụng điều này để đưa mọi thứ trở lại.
busybox
là một nhị phân với rất nhiều tiện ích tiêu chuẩn được tích hợp trong nó. Những thứ như mv
, sh
, ls
vv
Từ nhận xét của bạn về câu trả lời của Pavel, có vẻ như mọi thứ đã kết thúc /var
. Bạn có thể thử làm /var/bin/busybox mv /var/{bin,etc,lib32,lib64,root,sbin,usr} /
. Điều đó sẽ nhận được hầu hết các hoạt động hệ thống của bạn một lần nữa. Có một vài thư mục như /tmp
tồn tại /var/tmp
, vì vậy bạn không thể di chuyển chúng. Hy vọng rằng đó là những người mv
phàn nàn và họ bị bỏ lại một mình.
Lấy một cái vỏ gốc
Bạn cũng đã đề cập rằng bạn bị mất shell gốc và điều đó su
gây ra ld-linux
lỗi thư viện. Bạn có thể sử dụng như sau:
LD_LIBRARY_PATH=/var/lib64 /var/lib64/ld-linux-x86-64.so.2 /var/bin/su
Lưu ý: Khi thử điều này, nó không hoạt động. Điều này là do su
đòi hỏi nhiều file trong /etc
( passwd
, pam.d
, và những người khác). Nếu /etc
vẫn còn nguyên vẹn, điều này sẽ có cơ hội thành công.
Không có busybox
Nếu bạn không có sẵn busybox, bạn có thể sử dụng thủ thuật ld-linux tương tự như đối với 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} /
Từ một đĩa CD trực tiếp
Như đã thảo luận trong các bình luận, nếu bạn mất vỏ gốc, bạn sẽ bị kẹt khá nhiều. Về cơ bản để khắc phục điều này, bạn cần quyền root. Cách duy nhất để đến đó là có một tiện ích như su
hoặc sudo
tăng cường quyền của bạn (cả hai đều không hoạt động tại thời điểm này) hoặc chiếm quyền điều khiển một chương trình khác đã chạy bằng root (tùy thuộc vào những gì đang chạy, không có khả năng).
Điều này để lại tùy chọn duy nhất là một đĩa CD trực tiếp. Sau khi khởi động vào đĩa CD trực tiếp (hoặc USB trực tiếp hoặc bất cứ thứ gì), chỉ cần gắn ổ đĩa gốc và di chuyển các thư mục bị ảnh hưởng ra khỏi /var
nhà ban đầu của chúng /
.
Tóm tắt những gì đã xảy ra
folder/*
sẽ mở rộng ra một cái gì đó như folder/foo
và folder/bar
.
/*
sẽ mở rộng ra một cái gì đó như /bin
/lib32
/lib64
/etc
/home
/root
/var
. Lưu ý đó /var
là mục cuối cùng.
Vì vậy, khi cái vỏ mở rộng ra tất cả những khối u đó, nó sẽ chạy một thứ như thế này:
mv folder/foo folder/bar /bin /lib32 /lib64 /etc /home /root /var
Là /var
mục cuối cùng trong danh sách, mọi thứ đã được chuyển vào đó.
Tại sao có /var/bin/su
lỗi với/lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
Hầu như tất cả các nhị phân trong linux đều được liên kết động với ld-linux
. ld-linux
là thư viện chịu trách nhiệm tải các thư viện khác cần thiết bởi nhị phân. Trên hệ thống của bạn, cuộc sống này tại /lib64/ld-linux-x86-64.so.2
. Vì thư mục này đã được di chuyển, mọi thực thi được liên kết động sẽ không còn hoạt động.
Lý do busybox hoạt động là busybox được liên kết tĩnh. Nó không sử dụng ld-linux
.
/var/bin/su
trực tiếp?