โครงสร้างไฟล์ระบบและสิทธิ์การเข้าถึงไฟล์ใน 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 ช่วยให้คุณสามารถควบคุมการเข้าถึงไฟล์และไดเรกทอรีได้อย่างมีประสิทธิภาพ