Skip to main content

โครงสร้างไฟล์ระบบและสิทธิ์การเข้าถึงไฟล์ใน Linux

บทนำ

ในระบบปฏิบัติการ Linux, โครงสร้างของไฟล์ระบบและการตั้งค่าสิทธิ์การเข้าถึงไฟล์เป็นสิ่งสำคัญที่จะช่วยให้ระบบจัดการข้อมูลและความปลอดภัยได้อย่างมีประสิทธิภาพ บทนี้จะอธิบายเกี่ยวกับโครงสร้างไฟล์ระบบใน Linux และวิธีการตั้งค่าการอนุญาต (permissions) สำหรับไฟล์และไดเรกทอรีต่าง ๆ

1. โครงสร้างไฟล์ระบบ (File System Structure)

ใน Linux, ไฟล์ทั้งหมดจะถูกจัดเก็บในโครงสร้างต้นไม้ (tree-like structure) โดยเริ่มต้นจากไดเรกทอรีหลัก (root directory) ซึ่งมีเครื่องหมายเป็น /

1.1 ไดเรกทอรีหลักใน Linux

  • /: ไดเรกทอรีหลัก (root directory) ที่ทุกไฟล์และไดเรกทอรีอื่น ๆ จะอยู่ภายใน
  • /bin: ไฟล์บิตและคำสั่งพื้นฐานที่ใช้ในการบูตระบบและการใช้งานพื้นฐาน
  • /boot: ไฟล์ที่เกี่ยวข้องกับการบูตระบบ เช่น Kernel
  • /dev: ไฟล์ที่แสดงอุปกรณ์ในระบบ (devices) เช่น hard drives, printers, ฯลฯ
  • /etc: ไฟล์การตั้งค่าระบบ (configuration files)
  • /home: ไดเรกทอรีของผู้ใช้ (user directories) โดยแต่ละผู้ใช้จะมีไดเรกทอรีของตัวเองที่นี่
  • /lib: ไฟล์ไลบรารี (libraries) ที่จำเป็นสำหรับโปรแกรมต่าง ๆ ใน /bin และ /sbin
  • /media: ไดเรกทอรีที่ใช้ในการเชื่อมต่อสื่อ (media) เช่น USB drives
  • /mnt: ไดเรกทอรีที่ใช้ในการเชื่อมต่อ (mount) ไดรฟ์ภายนอก
  • /opt: ซอฟต์แวร์เพิ่มเติมที่ติดตั้ง (optional software)
  • /proc: ไดเรกทอรีที่เกี่ยวข้องกับกระบวนการ (processes) และข้อมูลระบบ
  • /root: ไดเรกทอรีของผู้ใช้ root
  • /run: ไฟล์ชั่วคราวที่ระบบสร้างขึ้นในระหว่างการทำงาน
  • /srv: ไดเรกทอรีที่ใช้เก็บข้อมูลที่บริการต่าง ๆ ใช้งาน
  • /sys: ไดเรกทอรีที่ให้ข้อมูลเกี่ยวกับอุปกรณ์ในระบบ
  • /tmp: ไฟล์ชั่วคราว (temporary files)
  • /usr: ซอฟต์แวร์ที่ใช้งานโดยผู้ใช้
  • /var: ไฟล์ที่มีข้อมูลที่สามารถเปลี่ยนแปลงได้ เช่น log files, spool files, ฯลฯ

1.2 วิธีการตรวจสอบโครงสร้างไฟล์

คุณสามารถใช้คำสั่ง tree หรือ ls เพื่อดูโครงสร้างของไดเรกทอรีในระบบ:

ls /
tree /

2. สิทธิ์การเข้าถึงไฟล์ (File Permissions)

ใน Linux, ไฟล์และไดเรกทอรีจะมีสิทธิ์การเข้าถึงที่ควบคุมว่าใครสามารถทำอะไรกับไฟล์นั้นได้ โดยสิทธิ์การเข้าถึงนี้จะถูกแบ่งออกเป็นสามประเภทหลัก: เจ้าของ (owner), กลุ่ม (group), และบุคคลอื่น (others)

2.1 รูปแบบของสิทธิ์การเข้าถึงไฟล์

สิทธิ์การเข้าถึงจะถูกแสดงในรูปแบบของสามคอลัมน์: อ่าน (r), เขียน (w), และการทำงาน (x)

  • r: อ่านไฟล์ (read)
  • w: เขียนไฟล์ (write)
  • x: การทำงานไฟล์ (execute)

ตัวอย่างการแสดงสิทธิ์การเข้าถึงไฟล์:

-rwxr-xr--

ในตัวอย่างนี้:

  • rwx: เจ้าของไฟล์ (owner) สามารถอ่าน, เขียน, และทำงานกับไฟล์ได้
  • r-x: กลุ่ม (group) สามารถอ่านและทำงานกับไฟล์ได้ แต่ไม่สามารถเขียนไฟล์
  • r--: บุคคลอื่น (others) สามารถอ่านไฟล์ได้เท่านั้น

2.2 คำสั่งที่ใช้ในการจัดการสิทธิ์

2.2.1 chmod - เปลี่ยนสิทธิ์การเข้าถึงไฟล์

คำสั่ง chmod ใช้เพื่อเปลี่ยนสิทธิ์การเข้าถึงไฟล์

chmod 755 filename

ในที่นี้ 755 หมายถึง:

  • 7: เจ้าของไฟล์ (owner) สามารถอ่าน, เขียน, และทำงาน (rwx)
  • 5: กลุ่ม (group) สามารถอ่านและทำงาน (r-x)
  • 5: บุคคลอื่น (others) สามารถอ่านและทำงาน (r-x)

การใช้คำสั่ง chmod แบบอักษร:

chmod u+x filename  # เพิ่มสิทธิ์การทำงานให้กับเจ้าของ
chmod g-w filename # ลบสิทธิ์การเขียนจากกลุ่ม
chmod o=r filename # กำหนดให้บุคคลอื่นสามารถอ่านได้เท่านั้น

2.2.2 chown - เปลี่ยนเจ้าของไฟล์

คำสั่ง chown ใช้เพื่อเปลี่ยนเจ้าของไฟล์หรือกลุ่มของไฟล์

chown user:group filename

ตัวอย่าง:

chown john:developers file.txt

2.2.3 chgrp - เปลี่ยนกลุ่มของไฟล์

คำสั่ง chgrp ใช้เพื่อเปลี่ยนกลุ่มของไฟล์

chgrp groupname filename

2.3 การจัดการสิทธิ์ในไดเรกทอรี

สิทธิ์การเข้าถึงในไดเรกทอรีจะมีผลกับการเข้าถึงไฟล์ภายในไดเรกทอรีนั้น ๆ:

  • r (อ่าน): สามารถดูรายการไฟล์ในไดเรกทอรี
  • w (เขียน): สามารถเพิ่มหรือลบไฟล์ในไดเรกทอรี
  • x (ทำงาน): สามารถเข้าไปในไดเรกทอรี

3. สรุป

การเข้าใจโครงสร้างไฟล์ระบบและการตั้งค่าสิทธิ์การเข้าถึงไฟล์เป็นสิ่งสำคัญในการใช้งานระบบ Linux โดยเฉพาะในการรักษาความปลอดภัยและการจัดการไฟล์ คำสั่งที่เกี่ยวข้องกับสิทธิ์การเข้าถึงไฟล์ เช่น chmod, chown, และ chgrp ช่วยให้คุณสามารถควบคุมการเข้าถึงไฟล์และไดเรกทอรีได้อย่างมีประสิทธิภาพ