วิธีการป้องกัน 'sudo rm -rf /'


10

sudo rm -rf /ไม่กี่ครั้งที่ผมได้ดำเนินการคำสั่งโดยไม่ได้ตั้งใจ

มีวิธีป้องกันฉันจากการใช้คำสั่งนี้หรือไม่? ตัวอย่างเช่นฉันสามารถปิดการใช้งานโดยใช้ไฟล์ sudoers ได้หรือไม่?


2
คุณจะพิมพ์คำสั่งนี้โดยไม่ตั้งใจแล้วรันมันได้อย่างไร?
fnord_ix

ถ้าฉันพิมพ์คำสั่งเช่นนี้ sudo rm -rf / Applications/chess.appสังเกตุช่องว่างระหว่าง / กับตัว A นั่นคือวิธี
iProgram

คำตอบ:


14

คุณสามารถเพิ่มบรรทัดเช่น

%admin ALL = !/bin/rm -rf /

ไปยังsudoersไฟล์ของคุณเพื่อป้องกันการดำเนินการของคำสั่งด้วยตัวเลือกเฉพาะ

หรือหากคุณต้องการยกเว้นหลายคำสั่งคุณสามารถทำงานกับสมนามคำสั่งได้

Cmnd_Alias DANGEROUS_CMNDS=/bin/rm -rf /, /bin/rm -fr /
%admin ALL=!DANGEROUS_CMNDS

คุณสามารถลองเล่นอย่างปลอดภัยโดยใช้

Cmnd_Alias DANGEROUS_CMNDS=/bin/rm -rf /, /bin/rm -fr /, /bin/rm / *, /bin/rm * /, /bin/rm -rf / *, /bin/rm -rf * /, /bin/rm -fr / *, /bin/rm -fr* /
%admin ALL=!DANGEROUS_CMNDS

แต่อาจมีวิธีอื่นที่คุณสามารถยิงตัวเองด้วยเท้าได้rmดังนั้นควรระมัดระวังต่อไป

แต่โปรดจำไว้ว่าการจับคู่ทั้งหมดจะทำในสตริงเต็มของคำสั่งดังนั้นsudo rm -rf /Volumesจะยังคงทำงานได้ (ตามที่ต้องการcd /; sudo rm -rf .)

PS: โดยทั้งหมดใช้sudo visudoเพื่อแก้ไขsudoersไฟล์และไม่เคยแก้ไขโดยตรง

PPS: เห็นได้ชัดว่าฉันไม่ได้ทดสอบด้วยrm(เฉพาะที่มี/bin/echoแทน)


ความคิดเห็นไม่ได้มีไว้สำหรับการอภิปรายเพิ่มเติม การสนทนานี้ได้รับการย้ายไปแชท
bmike

6

ฉันรู้ว่าคุณใช้คำถามในลักษณะที่ทำให้ฉันสงสัยว่าคุณไม่ต้องการฟังคำตอบนี้ แต่คุณควรลบตัวคุณเองออกจากไฟล์ sudoers หากคุณมีแนวโน้มที่จะทำผิดพลาดซ้ำไปซ้ำมา

ปัญหาพื้นฐานคือคุณยังไม่ได้ใช้นามแฝงrmเพื่อย้ายไปที่ถังขยะ (ซึ่งชัดเจนว่าคุณใช้งานอย่างไรในปัจจุบันและในอดีต) หรือบังคับrm -rให้ต้องถูกบังคับrm -ri

alias rm='/bin/rm -i'

คุณก็จะได้รับรอบนามแฝงกับcommand rm -rf whateverเมื่อคุณได้รับการฝึกอบรมใจของคุณเมื่อวัดสองครั้งตัดครั้งเดียวเป็นสิ่งจำเป็นสำหรับrm -rfการใช้งาน


ขอบคุณสำหรับเคล็ดลับนั้น ฉันกำลังคิดที่จะสร้างบัญชีผู้ดูแลระบบที่ซ่อนอยู่ (เพื่อเข้าถึงเทอร์มินัลเท่านั้น) และบัญชีมาตรฐานสำหรับการใช้งานปกติเท่านั้น ฉันสามารถทำให้เสื้อคลุมเพื่อย้ายไปที่ถังขยะแทนได้เช่นกัน ขอบคุณสำหรับเคล็ดลับนั้น ฉันคิดว่าการป้องกัน sudo อาจเป็นขั้นตอนที่ปลอดภัยกว่า ฉันจะยังคงให้แน่ใจว่าฉันสามารถเข้าถึงได้โดยเข้าสู่ระบบผู้ดูแลระบบที่ซ่อนอยู่
iProgram

ยังไม่ได้ทำเครื่องหมายว่าตอบเพราะแม้ว่ามันจะไม่ตอบข้างต้น นี่ยังเป็นคำแนะนำที่ดี
iProgram
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.