ดาวน์โหลดบทความ ดาวน์โหลดบทความ

ถ้าจะลบไฟล์ใน Linux ที่การอนุญาตสิทธิ์ (permissions) เป็น read-only ก็ทำได้ 2 - 3 วิธีด้วยกัน ถ้าไฟล์เป็นของคุณเอง จะเปลี่ยนการอนุญาตสิทธิ์ของไฟล์นั้น หรือใช้คำสั่ง sudo เพื่อลบไฟล์ในฐานะ root ก็ได้ แต่ถ้าจะลบไฟล์ที่ป้องกันการแก้ไข (write permissions) ไว้ แล้วลบไม่ได้ (หรือเกิด error "Read Only File System") ก็ต้อง remount ไดรฟ์ให้ใช้การอนุญาตสิทธิ์ที่ถูกต้อง บทความวิกิฮาวนี้จะแนะนำวิธีการลบไฟล์ read-only ใน Linux เวอร์ชั่นต่างๆ อย่าง Ubuntu หรือ Linux Mint ให้คุณเอง

วิธีการ 1
วิธีการ 1 ของ 3:

เปลี่ยน File Permissions

ดาวน์โหลดบทความ
  1. ถ้าไฟล์ของคุณเป็นแบบ read-only จะลบไม่ได้จนกว่าอนุญาตให้แก้ไขไฟล์ (write permission) ถ้าใช้ window manager ให้กด Ctrl + Alt + T เพื่อเปิดหน้าต่าง terminal
    • ให้ใช้วิธีนี้ ถ้าจะลบไฟล์ของตัวเอง (เช่น เป็นเจ้าของไฟล์ หรืออยู่ในกลุ่มที่เปิดอ่านได้) แต่ลบไม่ได้เพราะติดการอนุญาตสิทธิ์
    • ถ้าล็อกอินจากระยะไกล แล้วเปิด command prompt แล้ว ก็ข้ามไปขั้นตอนถัดไปได้เลย
  2. เช่น ถ้าไฟล์ที่จะลบอยู่ในโฟลเดอร์ documents ใน home directory ให้พิมพ์ cd documents หรือ cd /home/ username /documents
  3. พิมพ์ ls -al เพื่อแสดงการอนุญาตสิทธิ์ของไฟล์ใน directory. พิมพ์ ls -l แล้วจะเห็นรายชื่อไฟล์ใน directory พร้อมชื่อเจ้าของแต่ละไฟล์ รวมถึงการอนุญาตสิทธิ์ ถ้าเพิ่ม a ไปใน ls -l จะเห็นไฟล์และโฟลเดอร์ที่ถูกซ่อนใน directory ด้วย
  4. การอนุญาตสิทธิ์ของไฟล์จะอยู่หน้าชื่อไฟล์ เช่น r--r--r-- ส่วนชื่อเจ้าของไฟล์จะต่อท้าย ตามด้วยชื่อกลุ่ม
    • r เป็นการอนุญาติสิทธิ์ให้เปิดอ่านไฟล์ได้ w คืออนุญาตให้แก้ไข และ x คืออนุญาต execute ไฟล์
    • 3 อักขระแรกในการอนุญาตสิทธิ์ (อย่างใน r-- ) เป็นสิทธิ์ของเจ้าของไฟล์ เพราะฉะนั้นในตัวอย่างนี้ เจ้าของไฟล์จะทำได้แค่เปิดอ่าน แก้ไข หรือ execute หรือลบไฟล์ไม่ได้
    • 3 อักขระต่อมา แทนการอนุญาตสิทธิ์แบบกลุ่ม ถ้าคุณเป็นสมาชิกของกลุ่ม แล้วกลุ่มนั้นมีสิทธิ์แก้ไขไฟล์ คุณจะลบได้แม้จะไม่ใช่เจ้าของ
    • ส่วน 3 อักขระสุดท้าย แทน world permissions หรือสิทธิ์ของคนอื่นๆ นอกเหนือจาก 2 กลุ่มแรก
  5. จะละ r ก็ได้ ถ้าปกติเปิดไฟล์ได้อยู่แล้ว พอมีสิทธิ์แก้ไขไฟล์ด้วย ก็จะลบไฟล์ได้
    • ถ้าไม่ได้เป็นเจ้าของไฟล์ แต่มี root access ในระบบ ก็พิมพ์ sudo chmod -v u+rw filename เพื่ออนุญาตสิทธิ์ตามต้องการได้
    • คุณเช็คสิทธิ์ใหม่ของเอกสารได้โดยใช้คำสั่ง ls -al อีกรอบ
  6. พอมีสิทธิ์แก้ไขไฟล์แล้ว ก็ลบไฟล์ได้ง่ายนิดเดียว
    • ถ้ามีสิทธิ์แก้ไขไฟล์แล้ว แต่ยังลบไฟล์ไม่ได้ เป็นไปได้ว่าพาร์ทิชั่นของไฟล์นั้น mount แบบ read-only ไว้ ให้ใช้วิธี แก้ Read Only File System Error แทน
    โฆษณา
วิธีการ 2
วิธีการ 2 ของ 3:

ใช้ sudo

ดาวน์โหลดบทความ
  1. ให้ใช้คำสั่ง sudo ลบไฟล์ read-only ที่ลบไม่ได้ด้วยบัญชีผู้ใช้ของคุณ ถ้าใช้ window manager ให้กด Ctrl + Alt + T เพื่อเปิดหน้าต่าง terminal
    • ให้ใช้วิธีการนี้ ถ้าไม่ได้เป็นเจ้าของไฟล์ที่จะลบ แล้วอยากลบไฟล์โดยไม่ต้องเปลี่ยนการอนุญาตสิทธิ์
    • ถ้าล็อกอินจากระยะไกล และเปิด command prompt ไว้แล้ว ก็ข้ามไปขั้นตอนถัดไปได้เลย
  2. เช่น ถ้าไฟล์ที่จะลบอยู่ในโฟลเดอร์ documents ใน home directory ก็ให้พิมพ์ cd documents หรือ cd /home/ username /documents
  3. เป็นคำสั่งแสดงไฟล์ทั้งหมดใน directory ปัจจุบัน รวมถึงเจ้าของแต่ละไฟล์ รวมถึงการอนุญาตสิทธิ์
  4. จะมีให้ใส่รหัสผ่านเพื่อให้ได้สิทธิ์ระดับ root พอรหัสผ่านถูกต้องแล้ว ไฟล์ read-only จะถูกลบ
    • ถ้าลบไฟล์ด้วย sudo ไม่ได้ แสดงว่าพาร์ทิชั่น mount แบบ read-only ให้ใช้วิธี แก้ Read Only File System Error แทน
    โฆษณา
วิธีการ 3
วิธีการ 3 ของ 3:

แก้ Read Only File System Error

ดาวน์โหลดบทความ
  1. ถ้าจะลบไฟล์แล้วเจอ error rm: cannot remove '(filename)' : Read only file system ก็เป็นเพราะ 2 - 3 สาเหตุด้วยกัน เริ่มจากกด Ctrl + Alt + T เพื่อเปิดหน้าต่าง terminal ถ้าใช้ window manager
    • ถ้าล็อกอินจากระยะไกล ก็ข้ามไปอ่านขั้นตอนถัดไปได้เลย
  2. ต้องรู้ mount point ของไดรฟ์ที่มีปัญหาชัดเจน ใช้คำสั่งแล้วจะเห็นไดรฟ์ทั้งหมดที่ mount ไว้
  3. เปลี่ยน mount point เป็น mount point จริง เช่น /media/usbdisk ถ้าจะลบไฟล์ในไดรฟ์พกพา หรือ network drive อย่าง backup เก่า ไดรฟ์ที่ไฟล์อยู่อาจจะ mount แบบ read-only ก็ได้
    • ถ้าผลลัพธ์ออกมาเป็น ro แสดงว่า file system เป็น read-only ให้ remount ไดรฟ์ น่าจะช่วยได้ โดยใช้คำสั่ง mount -o remount,rw mount point เท่านี้ก็ลบไฟล์ได้
    • ถ้าการอนุญาตสิทธิ์ตอนนี้เป็น rw แสดงว่าไดรฟ์นั้น mount แบบ read-write คือเปิดและแก้ไขได้ ปกติต้องลบไฟล์ได้เลย ถ้าไม่ได้แสดงว่า file system ของไดรฟ์นั้นมีปัญหา ให้ทำตามขั้นตอนต่อไป
    • ถ้าขึ้นว่า remount-ro แสดงว่า file system มีปัญหา และไดรฟ์ผ่านการ remount เป็นแบบ read-only เพื่อป้องกันความเสียหายเพิ่มเติม หรือก็คือ file system ของนั้นมีปัญหา ต้องทำตามขั้นตอนต่อไป
  4. โดยใช้คำสั่ง sudo umount device เปลี่ยน device เป็นชื่ออุปกรณ์ เช่น /dev/sdd1
    • ปกติจะ unmount root file system ไม่ได้ เลยเช็ค file system ของ root partition ไม่ได้ เว้นแต่จะบูทเครื่องเข้า recovery mode ถ้ามี error ใน root file system ต้องบูทเข้า recovery mode ก่อน
  5. เป็นคำสั่งเช็คความสมบูรณ์ของไดรฟ์แบบไม่เปลี่ยนแปลงอะไร ถ้าไดรฟ์โอเค จะขึ้นว่า "clean" ถ้ามี error ก็จะรายงานเหมือนกัน
    • ถ้ามี error ต้อง backup ไดรฟ์ก่อนทำขั้นตอนต่อๆ ไป เว้นแต่จะซ่อมแซม file system ไม่ได้
  6. ถ้ามี error จะมีให้แก้ไข
    • ถึงจะเป็น error แบบแก้ไขได้ ก็แนะนำให้ backup ไว้ก่อน เผื่อไดรฟ์ล่ม
  7. ถ้าสามารถแก้ error ได้ ให้ remount ไดรฟ์ แล้วจะลบไฟล์ได้ โดยใช้คำสั่ง mount -o remount,rw mount point ให้แน่ใจว่าไดรฟ์จะถูก remount ให้เป็นแบบเปิดอ่านและแก้ไขไฟล์ได้ หลังจากนั้นจะแก้ไขและลบไฟล์ในไดรฟ์ได้
    โฆษณา

เกี่ยวกับวิกิฮาวนี้

มีการเข้าถึงหน้านี้ 2,094 ครั้ง

บทความนี้เป็นประโยชน์กับคุณไหม

โฆษณา