ในระบบปฏิบัติการ 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 คือสิ่งที่ต้องใช้แทบทุกวันเพื่อให้ระบบทำงานได้อย่างราบรื่นและปลอดภัย
อ่านเพิ่มเติม