Rain WikiWindows · Linux · Android

สิทธิ์การเข้าถึงไฟล์: chmod และ chown

เครื่องมือบรรทัดคำสั่งทุกดิสทริบิวชัน Linux

ไฟล์และไดเรกทอรีทุกรายการบน Linux จะมีเจ้าของ กลุ่ม และชุดสิทธิ์สามชุด ได้แก่ สำหรับเจ้าของ สำหรับกลุ่ม และสำหรับผู้อื่น chmod ใช้สำหรับเปลี่ยนสิทธิ์ (โหมด) และ chown ใช้สำหรับเปลี่ยนเจ้าของและกลุ่ม โดยคำสั่ง ls -l จะแสดงข้อมูลทั้งสองอย่าง

1การอ่านสิทธิ์

ในผลลัพธ์ของ ls -l ค่า -rw-r--r-- หมายถึงไฟล์ทั่วไปที่เจ้าของสามารถอ่านและเขียนได้ ส่วนผู้อื่นทำได้เพียงอ่านเท่านั้น r คืออ่าน w คือเขียน และ x คือเรียกใช้งาน สำหรับไดเรกทอรี x จะอนุญาตให้เข้าถึงไดเรกทอรีนั้นได้

2โหมดตัวเลข

แต่ละชุดสิทธิ์จะเป็นตัวเลขหนึ่งหลัก โดยอ่านคือ 4 เขียนคือ 2 และเรียกใช้งานคือ 1 นำมารวมกัน ค่า 644 (rw-r--r--) เป็นค่าทั่วไปสำหรับไฟล์ ส่วน 755 (rwxr-xr-x) สำหรับไดเรกทอรีและโปรแกรม และ 600 (rw-------) สำหรับไฟล์ส่วนตัว เช่น SSH keys

3การเปลี่ยนเจ้าของ

sudo chown user:group file ใช้สำหรับกำหนดเจ้าของและกลุ่ม หากใช้ร่วมกับ -R ทั้ง chmod และ chown จะทำงานแบบเรียกซ้ำผ่านโครงสร้างไดเรกทอรี

วิธีการแก้ไขสิทธิ์ของโฟลเดอร์เว็บ

  1. ตรวจสอบสถานะปัจจุบัน: ls -l /var/www/site
  2. กำหนดเจ้าของ: sudo chown -R www-data:www-data /var/www/site
  3. กำหนดสิทธิ์ไดเรกทอรีเป็น 755: sudo find /var/www/site -type d -exec chmod 755 {} +
  4. กำหนดสิทธิ์ไฟล์เป็น 644: sudo find /var/www/site -type f -exec chmod 644 {} +

ข้อควรระวัง

  • ห้ามใช้ chmod -R 777 โดยเด็ดขาด เพราะจะทำให้ผู้ใช้และกระบวนการทุกอย่างสามารถแก้ไขไฟล์ได้
  • การใช้ chmod หรือ chown แบบเรียกซ้ำในพาธที่ไม่ถูกต้อง เช่น / หรือ /usr อาจทำให้ระบบเสียหายได้

แหล่งอ้างอิง

  1. หน้าคู่มือ chmod(1) man7.org
  2. หน้าคู่มือ chown(1) man7.org

ตรวจสอบล่าสุด: