คุณสามารถไปกับ rm -rf / as root ได้ไกลแค่ไหน


23

หากคุณเป็นคนรูทและคุณเป็นผู้ออก

rm -rf / 

ถ้าเช่นนั้นคำสั่งจะไปได้ไกลแค่ไหน? คุณสามารถกู้คืนข้อมูลจากการกระทำประเภทนี้ได้หรือไม่? แม้หลังจากที่ไบนารีหายไปกระบวนการที่ทำงานอยู่จะยังคงทำงานอยู่หรือไม่? สิ่งที่ต้องใช้เพื่อให้การบูตเครื่องทางกายภาพเดียวกันอีกครั้ง คุณต้องการเรียกคืนไฟล์ใดเพื่อให้เกิดสิ่งนี้

ฉันสามารถลองบน VM และดู แต่ฉันต้องการทราบเหตุผลเบื้องหลังสิ่งที่คาดหวังถ้าฉันทำเช่นนี้



1
@Ste True แต่ตราบใดที่มันไม่ได้คัดลอก / วางเรามักจะปล่อยมันไปเพราะเรามีบางอย่างทับซ้อนกับเว็บไซต์อื่น ๆ
Michael Mrozek

คำตอบ:


21

คำสั่งนี้ไม่ทำอะไรเลยอย่างน้อยในระบบปฏิบัติการที่ฉันใช้ (Solaris) ซึ่งมีการใช้งานคุณลักษณะความปลอดภัยนี้เป็นครั้งแรก:

# rm -rf /
rm of / is not allowed

บน * nix อื่น ๆ โดยเฉพาะตระกูล Linux หากมี Gnu rm เพียงพอล่าสุดคุณจะต้องเพิ่ม--no-preserve-rootตัวเลือกเพื่อเปิดใช้งานคำสั่งให้เสร็จสมบูรณ์ (หรืออย่างน้อยเริ่มต้น)

คำสั่งนี้จะไปไกลแค่ไหนไม่ได้กำหนด มันขึ้นอยู่กับเหตุการณ์ที่คาดเดาไม่ได้มากขึ้นหรือน้อยลง โดยทั่วไปกระบวนการสามารถทำงานได้แม้หลังจากที่ไบนารีถูกลบแล้ว


5
ไม่เชื่อคุณในตอนแรก แต่มีเป็น มันยากที่จะเชื่อว่าจะใช้เวลาจนถึงปี 2005 (Sun / BSD) และ 2006 (GNU) เพื่อหยุดความผิดพลาดที่น่ากลัวนี้เกิดขึ้น
แอมเฟตามาจิน

3
คุณยังสามารถใช้rm -rf /*เพื่อลบสิ่งใด ๆ ได้
Felix Yan

1
แน่นอน แต่ในกรณีนั้นไม่มีสิ่งใดที่ rm สามารถทำได้อย่างง่ายดายเนื่องจากการขยายไฟล์เสร็จแล้วโดยเชลล์ก่อนที่ rm จะถูกเรียกใช้
jlliagre

4

แม้จะมีคำตอบที่ยอดเยี่ยมของ jlliagre จำไว้ว่านี่ยังเป็นสิ่งที่อันตรายมาก มักจะrm -rfตรวจสอบอีกครั้งคุณจะอยู่ที่ไหนก่อนที่จะทำสิ่งที่ชอบ มันจะเป็นความหายนะหากคุณต้องทำrm -rf *ในขณะที่อยู่ในไดเรกทอรี / usr

สำหรับคำถามที่เหลือของคุณสิ่งที่คุณสามารถกู้คืนได้นั้นขึ้นอยู่กับกระบวนการสำรองข้อมูลของคุณ ในระบบ * nix ส่วนใหญ่ไม่มีวิธีที่ง่ายในการกู้คืนไฟล์และไดเรกทอรีเมื่อถูกลบไปแล้ว ซึ่งแตกต่างจากวัน DOS เก่าที่ไฟล์มักจะยังคงอยู่บนดิสก์หลังจากทำการลบแล้วระบบส่วนใหญ่ทุกวันนี้ทำสิ่งที่ทำให้การกู้คืนยากมาก นี่คือหนึ่งในเหตุผลที่บริการกู้คืนข้อมูลมีราคาแพงมาก

หากคุณใช้ VM ฉันขอแนะนำให้ทำภาพรวมเป็นครั้งคราวอย่างน้อยที่สุด แต่ไม่มีอะไรสามารถเอาชนะได้ตามแผนสำรองที่ดี


2

อย่างที่บางคนบอกว่าคุณยังสามารถใช้sudo rm -rf /*เพื่อลบอะไรก็ได้ หากไม่มีเครื่องหมายดอกจันก็ใช้กับ OS X ได้เช่นกัน บางคนได้ทำฟุตเทจเกี่ยวกับการทำลาย OS X Yosemite เช่นนี้และฉันมั่นใจว่า OS บน Linux จะได้รับประสบการณ์ที่เหมือนกัน

สิ่งต่าง ๆ เริ่มช้าลงโดยไม่ตอบสนอง ฉันไม่คิดว่าทุกอย่างจะถูกลบเมื่อเทอร์มินัลค้างในขณะที่กระบวนการกำลังเกิดขึ้น แต่ก็เพียงพอที่จะหยุดสิ่งทั้งหมดแล้วเริ่มการทำงานใหม่

ความพยายามในการรีบูตทำให้เกิดโหมดผู้ใช้คนเดียวเช่นหน้าจอบูตพร้อมข้อผิดพลาด


1
หากที่สามารถให้ปลอบใจบางอย่างจะไม่ลบไฟล์ที่ซ่อนอยู่และไดเรกทอรีในsudo rm -rf /* /มันจะล้มเหลวในการลบไฟล์ที่ถูกหลอกลวงโดยจุดเชื่อมต่ออื่น, ไฟล์ในระบบไฟล์แบบอ่านอย่างเดียวหรือระบบแฟ้มหลอก, ไฟล์ที่ไม่เปลี่ยนรูปหรือจุดเชื่อมต่อ
Stéphane Chazelas

@ StéphaneChazelasที่ปรากฏในวิดีโอด้วย มีข้อผิดพลาดกับระบบไฟล์ read-ony แม้จะไม่ได้ลบทุกอย่างมันก็เพียงพอที่จะหยุดและทำลายการบูต (ของระบบไม่ใช่ EFI)
TheBro21 21

2

ฉันเพิ่งลองกับ Ubuntu 16 และ vmware เวิร์กสเตชันและด้วยตัวเลือกที่ไม่มีการสงวนไว้จะลบดิสก์ทั้งหมดของระบบ Linux ที่ใช้งานอยู่ หลังจากนั้นเสร็จสิ้นแอปเวิร์กสเตชัน vmware ทั้งหมดไม่เสถียรและแม้แต่การปิดเครื่องหรือรีเซ็ตเครื่องเสมือนจากแอปพลิเคชันนั้นเป็นไปไม่ได้ การฆ่า vmx นั้นถูกปฏิเสธเฉพาะการรีบูตโฮสต์ที่ทำงานหลังจากนั้น!


ดี! :) นี่คือสิ่งที่ฉันหวังว่าจะได้ยินจากใครบางคน
Sudipta Chatterjee

1

เราไม่สามารถทำลายระบบของเขา / เธอเพียงอย่างrm -rf /เดียวได้ ในขั้นต้นคำสั่งจะออกภายใต้ไม่ปลอดภัยโหมดซึ่งจะ จำกัด การใช้งานของrmบน/แต่แม้จะมี--no-preserve-rootเป็นอาร์กิวเมนต์ระบบการทำงานจะไม่อนุญาตให้มีการกำจัดของกระบวนการทำงานจากดิสก์; อย่างไรก็ตามส่วนที่เหลือของโปรแกรมและไฟล์จะถูกลบออกทำให้ระบบไม่สามารถใช้งานได้ (เกือบ) ไม่มีโปรแกรมให้ทำงาน! กรุณาตรวจสอบภาพหน้าจอที่นี่คำสั่งนี้ออกให้ใน Arch Linux ใน Virtual Box: http://bit.ly/q9CsA4


คุณสามารถอัพโหลดภาพที่ไหนสักแห่งได้ไหม? การดาวน์โหลด tar, untaring และการดูไฟล์ทั้งหมดไม่ใช่สิ่งที่คนส่วนใหญ่จะทำ โอ้และตัวย่อ URL ไม่ได้รับอนุญาตให้ใช้ SE ให้ใช้ลิงก์จริงเสมอ
TheLQ

3
คุณเขียนว่า: "ระบบที่ทำงานอยู่จะไม่อนุญาตให้ลบกระบวนการทำงานออกจากดิสก์" เท่าที่เกี่ยวข้องกับ * ระวังนี่ไม่ถูกต้อง ข้อ จำกัด นี้มีอยู่ใน Windows แต่คุณสามารถลบ (ยกเลิกการเชื่อมโยง) ไฟล์บน Unix / Linux ได้แม้ว่าจะถูกดำเนินการก็ตาม
jlliagre

2
"... ระบบที่ทำงานอยู่จะไม่อนุญาตให้ลบกระบวนการทำงานออกจากดิสก์ ... " นี่คือฉันกลัวไม่เป็นความจริง - ไฟล์ที่ไม่สามารถลบได้ในตัวอย่างของคุณไม่ใช่ไฟล์จริง ๆ - ให้การเข้าถึงอุปกรณ์บล็อกโมดูลเคอร์เนลและระบบภายในอื่น ๆ การดำเนินการลบกับมันไม่สมเหตุสมผลและไม่สามารถทำได้แม้ในขณะrootเดียวกัน
นาธานออสมัน

นี่คือรูปภาพโดย Abhisek แชร์ใน Galery ออนไลน์: min.us/mSQcqHGQA min.us/moyPvnYOw (ตามคำขอของ TheLQ)
Artem Pelenitsyn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.