ในทุกๆระบบปฏิบัติการก็จะมีการกำหนดการเข้าถึงของ File หรือ Folder นั้นๆ ว่าใครสามารถเข้าถึงได้และทำอะไรได้บ้าง ซึ่งในลินุกซ์ หลายๆคนอาจจะเคยเห็นหรือเคยใช้คำสั่ง chmod กันมาบ้างแล้ว แต่ไม่เคยเข้าใจว่ามันทำงานยังไง วันนี้เราจะมาทำความเข้าใจกัน
Permissions
ก่อนอื่นมาทำความเข้าใจกันก่อนว่า มันมี Permission อะไร และมีสิทธิ์ทำอะไรได้บ้าง ซึ่งใน OS ที่เป็น Unix และ Unix-like จะมี Permission ทั้งหมด 3 ประเภท ดังนี้
- Read (r) - สามารถอ่านไฟล์ได้
- Write (w) - สามารถเขียนไฟล์ได้
- Execute (x) - สามารถรันไฟล์ได้
User Types
ทีนี้มาดู User กันบ้าง ซึ่ง User จะแบ่งออกเป็น 3 ประเภท ดังนี้
- Owner - คนที่สร้างไฟล์นั้นๆ
- Group - คนที่อยู่ในกลุ่มเดียวกันกับ Owner
- Everyone else - คนที่ไม่ได้อยู่ในกลุ่มเดียวกันกับ Owner
Number Permission
ใน Unix และ Unix-like จะใช้ตัวเลข 3 หลัก ในการกำหนด Permission
- 4 - Read สามารถอ่านไฟล์ได้
- 2 - Write สามารถเขียนไฟล์ได้
- 1 - Execute สามารถรันไฟล์ได้
- 0 - ไม่สามารถอ่าน เขียน หรือรันไฟล์ได้
ซึ่งถ้าลองรวมกัน จะเท่ากับ 7 (บอกเฉยๆ 😅)
chmod
ก่อนจะไปดูตัวอย่าง มาดูคำสั่งที่เราจำเป็นต้องใช้กันก่อน ก็คือ chmod
หรือชื่อเต็มๆก็คือ change mode ซึ่งจะใช้ในการเปลี่ยน Permission ของไฟล์หรือโฟลเดอร์นั้น
ตัวอย่าง
เรามาดูตัวอย่างกันบ้าง ผมจะสร้างโฟลเดอร์ชื่อ hello และไฟล์ชื่อ index.html ขึ้นมาสำหรับตัวอย่างนี้
สังเกตว่า Folder จะมี d นำหน้าเพื่อบอกว่าเป็น directory และ - นำหน้าเพื่อบอกว่าอันนี้เป็นไฟล์ปกติ ถัดมาเรามาดู Permission ของ folder hello กันบ้าง โดยจะแบ่งออกเป็น 3 ส่วน คือ
- ส่วนแรกคือ Permission ของ Owner ซึ่งเป็น
rwx
หมายถึง สามารถอ่านได้ เขียนได้ และรันได้ - ส่วนที่สองคือ Permission ของ Group ซึ่งเป็น
r-x
หมายถึง สามารถอ่านได้ และรันได้ - ส่วนที่สามคือ Permission ของ Everyone else ซึ่งเป็น
r-x
หมายถึง สามารถอ่านได้ และรันได้
สมมติว่าเราอยากเปลี่ยนเป็นแค่เราที่สร้างไฟล์สามารถอ่าน เขียน และ รันได้คนเดียว ก็จะเป็น
ซึ่งตัวเลขที่เรากำหนดไป เรากำหนดให้เฉพาะ Owner เท่านั้นที่สามารถอ่าน เขียน และ รันได้ ส่วน Group และ Everyone else จะไม่สามารถทำอะไรได้เลย
ถ้าอยากลองกำหนดให้ group สามารถอ่านได้อย่างเดียว ก็จะเป็น
เพียงเท่านี้ก็เรียบร้อย สำหรับการกำหนด Permission ของไฟล์และโฟลเดอร์ จะสังเกตว่าผมใช้คำว่า Unix และ Unix-like ซึ่งหมายถึง ไม่ใช่แค่ Linux เท่านั้น แต่ยังรวมถึง macOS ด้วย ก็สามารถใช้วิธีการเดียวกันได้ หวังว่าบทความนี้จะช่วยให้เข้าใจการกำหนด Permission ของไฟล์และโฟลเดอร์ได้มากขึ้นนะครับ สำหรับบทความนี้ก็ขอจบไว้เพียงเท่านี้ แล้วเจอกันใหม่ในบทความต่อไป สวัสดีครับ 🙏