Tag Archive เจ้าของ

Byphunsanit

Linux: chown การจัดการความเป็นเจ้าของไฟล์

ในระบบปฏิบัติการ Linux และ Unix-like ทุกไฟล์และทุกโฟลเดอร์จะต้องมี “เจ้าของ” (Owner) และ “กลุ่ม” (Group) เสมอ การจัดการสิทธิ์เหล่านี้เป็นพื้นฐานสำคัญของความปลอดภัยในระบบ และคำสั่งที่เป็นหัวใจหลักในการจัดการเรื่องนี้คือ chown

chown คืออะไร?

chown ย่อมาจาก Change Owner เป็นคำสั่งที่ใช้เปลี่ยน “ผู้ใช้งานที่เป็นเจ้าของ” (User Owner) และ “กลุ่มที่เป็นเจ้าของ” (Group Owner) ของไฟล์หรือไดเรกทอรี

ทำไมต้องใช้?

  • ความปลอดภัย: ป้องกันไม่ให้ User อื่นแก้ไขไฟล์สำคัญ
  • การทำงานของ Service: โปรแกรมอย่าง Nginx, Apache หรือ MySQL มักต้องเป็นเจ้าของไฟล์ของตัวเองเพื่อให้ทำงานได้ถูกต้อง
  • การย้ายไฟล์: เมื่อเรา copy ไฟล์มาจากที่อื่น (เช่น อัปโหลดผ่าน FTP หรือใช้ root สร้างไฟล์) สิทธิ์มักจะไม่ถูกต้อง ทำให้ User ปกติแก้ไขไม่ได้

โครงสร้างคำสั่ง (Syntax)

chown [OPTIONS][USER][:GROUP] FILE

  • USER: ชื่อ user หรือ UID ที่ต้องการตั้งให้เป็นเจ้าของ
  • GROUP: ชื่อ group หรือ GID (ต้องคั่นด้วย :)
  • FILE: ไฟล์หรือโฟลเดอร์ที่ต้องการเปลี่ยน

ตัวอย่างการใช้งานจริง

  • เปลี่ยนแค่ “เจ้าของ” (User)
    สมมติว่ามีไฟล์ชื่อ report.txt และต้องการยกให้ user ชื่อ pitt เป็นเจ้าของ
    chown pitt report.txt
  • เปลี่ยนทั้ง “เจ้าของ” และ “กลุ่ม” (User & Group)
    บ่อยครั้งที่เราต้องการเปลี่ยนทั้งคู่ไปพร้อมกัน ใช้เครื่องหมาย : คั่น
    chown pitt:phunsanit report.txt
    ในตัวอย่างนี้: User คือ pitt และ Group คือ phunsanit
  • เปลี่ยน “กลุ่ม” อย่างเดียว
    ถ้าต้องการเปลี่ยนแค่กลุ่ม (คล้ายกับคำสั่ง chgrp) ให้ใส่เครื่องหมาย : นำหน้า
    chown :staff report.txt
  • การเปลี่ยนแบบ Recursive (เปลี่ยนทั้งโฟลเดอร์และไฟล์ข้างในทั้งหมด) [ใช้บ่อยมาก]
    หากคุณมีโฟลเดอร์ที่มีไฟล์ซ้อนอยู่หลายชั้น และต้องการเปลี่ยนสิทธิ์ทั้งหมดในคราวเดียว ต้องใช้ Option -R (ตัวพิมพ์ใหญ่)
    chown -R www-data:www-data /var/www/html
    สถานการณ์จริง: คำสั่งนี้มักใช้ในการตั้งค่า Web Server (เช่น Nginx/Apache) เพื่อให้ Server สามารถอ่านและเขียนไฟล์ในโฟลเดอร์เว็บได้ทั้งหมด

เทคนิคและข้อควรระวัง

การตรวจสอบผลลัพธ์

ก่อนหรือหลังใช้ chown คุณสามารถเช็คว่าใครเป็นเจ้าของไฟล์ได้ด้วยคำสั่ง
ls -l
ผลลัพธ์จะเป็น: -rw-r--r-- 1 user group ... (คอลัมน์ที่ 3 คือ User, คอลัมน์ที่ 4 คือ Group)

ระวังการใช้กับ Root Directory (/)

คำเตือน: ห้ามใช้ chown -R กับโฟลเดอร์ระบบสำคัญๆ เช่น /, /bin, หรือ /etc โดยเด็ดขาด เพราะอาจทำให้ระบบพัง บูตไม่ขึ้น หรือ Login ไม่ได้ทันที

ใช้ --from เพื่อความปลอดภัย

ถ้าคุณต้องการเปลี่ยนเจ้าของ เฉพาะไฟล์ที่เป็นของ user เก่าเท่านั้น (ป้องกันการเปลี่ยนผิดไฟล์) สามารถใช้ --from ได้
เปลี่ยนเป็น user ‘new_admin’ เฉพาะไฟล์ที่เดิมเป็นของ ‘old_admin’ เท่านั้น

chown --from=old_admin new_admin filename


สรุป

chown เป็นเครื่องมือพื้นฐานแต่ทรงพลัง หากคุณเป็น System Admin หรือ Developer ที่ต้องจัดการ Server การเข้าใจ chown -R user:group path คือสิ่งที่ต้องใช้แทบทุกวันเพื่อให้ระบบทำงานได้อย่างราบรื่นและปลอดภัย


อ่านเพิ่มเติม