หากระบบของคุณbusybox
ติดตั้งคุณสามารถใช้สิ่งนี้เพื่อนำสิ่งต่าง ๆ กลับมา
busybox
เป็นเลขฐานสองที่มีสาธารณูปโภคมาตรฐานจำนวนมากติดตั้งอยู่ภายใน สิ่งต่างๆเช่นmv
, sh
, ls
ฯลฯ
/var
จากความคิดเห็นของคุณกับคำตอบของพาเวลมันเสียงเหมือนทุกอย่างจบลง /var/bin/busybox mv /var/{bin,etc,lib32,lib64,root,sbin,usr} /
คุณสามารถลองทำ ซึ่งควรทำให้ระบบของคุณใช้งานได้อีกครั้ง มีไดเรกทอรีบางอย่างเช่น/tmp
ที่มีอยู่/var/tmp
ด้วยดังนั้นคุณจึงไม่สามารถย้ายได้ หวังว่าคนเหล่านั้นจะเป็นคนที่mv
บ่นและพวกเขาถูกทิ้งให้อยู่ตามลำพัง
รับรูตเชลล์
คุณยังพูดถึงว่าคุณทำรูทเชลล์ของคุณหายและนั่นsu
ทำให้คุณเกิดld-linux
ข้อผิดพลาดกับไลบรารี คุณอาจจะสามารถใช้สิ่งต่อไปนี้:
LD_LIBRARY_PATH=/var/lib64 /var/lib64/ld-linux-x86-64.so.2 /var/bin/su
หมายเหตุ: เมื่อพยายามทำเช่นนี้จะไม่ทำงาน นี้เป็นเพราะsu
ต้องใช้หลายแฟ้มใน/etc
( passwd
, pam.d
และอื่น ๆ ) หาก/etc
ยังคงไม่บุบสลายนี่จะเป็นโอกาสที่ดีที่จะประสบความสำเร็จ
ไม่มีกล่องไม่ว่าง
หากคุณไม่มี busybox ให้ใช้งานคุณอาจใช้เคล็ดลับ ld-linux เช่นเดียวกับ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} /
จากซีดีสด
ตามที่กล่าวไว้ในความคิดเห็นหากคุณทำรูทเชลล์หายคุณก็ติดอยู่มาก โดยทั่วไปเพื่อแก้ไขปัญหานี้คุณต้องมีสิทธิ์ใช้งานรูท วิธีเดียวที่จะไปถึงที่นั่นคือมียูทิลิตี้เช่นsu
หรือsudo
เพิ่มการอนุญาตของคุณ (ซึ่งทั้งสองอย่างนี้ไม่สามารถใช้งานได้ในตอนนี้) หรือจี้โปรแกรมอื่นที่รันอยู่ในสถานะรูท (ขึ้นอยู่กับสิ่งที่กำลังทำงาน
ทำให้ตัวเลือกเดียวเท่านั้นที่เป็นซีดีสด เมื่อ booted ลงในแผ่นซีดีสด (หรือสด USB หรืออะไรก็ตาม) เพียงแค่ติดปริมาณรากและย้ายไดเรกทอรีที่ได้รับผลกระทบจากการกลับไปที่บ้านเดิมของพวกเขาใน/var
/
เรื่องย่อของสิ่งที่เกิดขึ้น
folder/*
จะมีการขยายตัวออกไปในบางสิ่งบางอย่างเช่นและfolder/foo
จะมีการขยายตัวออกไปในสิ่งที่ต้องการ การสังเกตว่าเป็นรายการสุดท้าย
ดังนั้นเมื่อเปลือกหอยขยายตัวออกไปมันจะมีลักษณะดังนี้:folder/bar
/*
/bin
/lib32
/lib64
/etc
/home
/root
/var
/var
mv folder/foo folder/bar /bin /lib32 /lib64 /etc /home /root /var
เช่นเดียว/var
กับรายการสุดท้ายในรายการทุกอย่างถูกย้ายเข้าไป
ทำไมถึง/var/bin/su
เกิดข้อผิดพลาดด้วย/lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory
ld-linux
เกือบไบนารีทั้งหมดในลินุกซ์มีการเชื่อมโยงกับแบบไดนามิก ld-linux
เป็นห้องสมุดที่รับผิดชอบในการโหลดไลบรารีอื่น ๆ ที่จำเป็นโดยไบนารี /lib64/ld-linux-x86-64.so.2
ในระบบของคุณนี้อาศัยอยู่ที่ เนื่องจากไดเร็กทอรีนี้ถูกย้ายไฟล์ปฏิบัติการที่ลิงก์แบบไดนามิกจะไม่ทำงานอีกต่อไป
เหตุผลที่ทำให้ busybox ใช้งานได้นั่นคือ busybox นั้นถูกเชื่อมโยงแบบคงที่ ld-linux
มันไม่ได้ใช้
/var/bin/su
ไปไม่ได้เหรอ