อะไรคือแนวคิดเบื้องหลัง rm ที่ไม่ลบไฟล์ที่ไม่สามารถเขียนได้โดยค่าเริ่มต้น


13

อะไรคือแนวคิดเบื้องหลัง rm ที่ไม่ลบไฟล์ที่ไม่สามารถเขียนได้โดยค่าเริ่มต้น ทุกครั้งที่คุณต้องการลบไฟล์ที่ไม่ใช่ไฟล์ที่เขียนได้สำหรับผู้ใช้ปัจจุบัน แต่คุณมีสิทธิ์เขียนในไดเรกทอรีได้รับคำเตือนนี้และคุณต้อง pres`y 'เพื่อยืนยันการลบ:

rm: remove write-protected regular file 

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

คำตอบ:


16

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

การใช้-f(แรง) จะทำให้ทำได้โดยไม่รบกวนคุณ แต่ใช้อย่างระมัดระวัง


ระวังเมื่อพิมพ์ "rm -rf *" ให้คิด
ChuckCottrill

4
เพื่อนของฉันอ้างถึงว่าเป็น "อ่านจดหมายอย่างรวดเร็วจริง" :)
kurtm

0

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


ฉันคิดว่าฉันไม่ได้รับคำตอบที่ถูกต้อง ฉันสงสัยว่าเหตุใด rm จึงออกคำเตือนดังกล่าวตั้งแต่แรกเหตุใดไฟล์แบบอ่านอย่างเดียวจึงแตกต่างจากไฟล์ที่เขียนได้ ฉันรู้ว่าเมื่อคำเตือนนี้ปรากฏขึ้นฉันสงสัยว่าทำไม
user1042840

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

1
@Jeight นั่นไม่ถูกต้องจริง คุณไม่ได้เขียนไฟล์เมื่อลบ คุณกำลังเขียนไปยังไดเรกทอรีที่มี
kurtm

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