Linux10

จาก Wiki Opensource

บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 3-12-2555

ดูแลโดย WIBOON


Linux 10: การจัดการแฟ้มและกำหนดสิทธิ์


รายละเอียด

เรียนรู้คำสั่งเกี่ยวกับสิทธิ์ของแฟ้ม

  1. ดูโครงสร้าง directory ต่างๆที่อยู่ภายใต้ / ด้วยคำสั่ง
    ls -d /*/
  2. สิทธิ์ในการจัดการแฟ้มรวมถึง directory ด้วยนั้นถูกแบ่งตามผู้ใช้ แยกเป็น 3 ประเภทคือ u, g และ o
  3. - ประเภท u หมายถึงเจ้าของผู้ถือสิทธิ์ตามข้อมูลในแฟ้ม /etc/passwd
    - ประเภท g หมายถึงกลุ่มที่ถือสิทธิ์ตามข้อมูลในแฟ้ม /etc/group
    - ประเภท o หมายถึงผู้ใช้อื่นๆที่ไม่ได้เป็นเจ้าของพื้นที่ตามสิทธิ์ของ u และ g
  4. สิทธิ์ในการจัดการแฟ้มแบ่งตามการจัดการ แยกเป็น 3 แบบคือ r, w และ x
    - แบบ r หมายถึงอนุญาตให้อ่าน,
    - แบบ w หมายถึงอนุญาตให้เขียน และ
    - แบบ x หมายถึงอนุญาตให้โปรแกรมทำงานได้
  5. ลองดูตัวอย่างด้วยคำสั่ง
    ls -l /etc/rc.local
  6. ดูตัวอย่าง rwxr-xr-x แบ่งได้เป็น 3 ชุดคือชุดแรกเป็น rwx สิทธิ์ของ u, ชุดที่ 2 เป็น r-x สิทธิ์ของ g และชุดที่ 3 เป็น r-x สิทธิ์ของ o

เรียนรู้การเปลี่ยนสิทธิ์การจัดการแฟ้ม

  1. เปลี่ยนสิทธิ์การจัดการแฟ้มด้วยคำสั่ง chmod
    ตัวอย่างแบบแรก chmod u=rwx,g=r-x,o=r-x ชื่อแฟ้ม
    เช่น
    ls -l test
    -rw-rw-r-- 1 mama mama 2 Nov 23 20:30 test
    เปลี่ยนสิทธิ์ของแฟ้มชื่อ test ด้วยคำสั่ง
    chmod u=r,g=r,o=r test
    ตรวจสอบผล
    ls -l test
    -r--r--r-- 1 mama mama 2 Nov 23 20:30 test
    หรือ
    ตัวอย่างแบบที่สอง chmod u+w,g+w,o+rx ชื่อแฟ้ม
    เช่น
    เปลี่ยนสิทธิ์ของแฟ้มชื่อ test ด้วยคำสั่ง
    chmod u+w,g+w,o+rx test
    ตรวจสอบผล
    ls -l test
    -rw-rw-r-x 1 mama mama 2 Nov 23 20:30 test
    (มีรายละเอียดมากกว่านี้อีกเยอะ อ่านเองด้วย man chmod)
  2. การเปลี่ยนสิทธิ์การจัดการแฟ้มสามารถใช้เลขแทนตัวอักษรแสดงสิทธิ์ต่างๆได้ เช่น rwxr-xr-x ก็แทนได้ด้วย 755, rwxrwxrwx แทนด้วย 777
  3. วิธีการแปลง
    ในแต่ละชุดใช้ตัวเลขฐาน 2 แทนที่หลักแรกคือ r ด้วย 100 , หลักของ w แทนด้วย 10 และหลักของ x แทนด้วย 1
    rwx ก็คือการบวกแบบของเลขฐาน 2 คือ 100 + 10 + 1 = 111 เทียบเป็นเลขฐานสิบก็คือ 7
    r-x ก็คือการบวกแบบของเลขฐาน 2 คือ 100 + 1 = 101 เทียบเป็นเลขฐานสิบก็คือ 5
    rw- ก็คือการบวกแบบของเลขฐาน 2 คือ 100 + 10 = 110 เทียบเป็นเลขฐานสิบก็คือ 6
    ตัวอย่างเช่น
    chmod 755 test
    ตรวจสอบผล
    ls -l test
    -rwxr-xr-x 1 mama mama 2 Nov 23 20:30 test

เรียนรู้การตั้งค่าสิทธิ์ชนิดพิเศษของการจัดการแฟ้ม

  1. suid เป็นการตั้งค่าสิทธิ์ให้เมื่อผู้ใช้สั่งทำงานแล้วจะมีผลทำให้ข้อมูลของแฟ้มสำหรับระบบเปลี่ยนแปลงได้
    ตัวอย่างแฟ้มที่ใช้ suid ลองดูด้วยคำสั่ง
    ls -l /usr/bin/passwd
    -rwsr-xr-x 1 root root 42824 Sep 13 05:29 /usr/bin/passwd
    ได้สิทธิ์ว่า rwsr-xr-x สังเกตดูมีสัญญลักษณ์ s แทนที่จะเป็น x
  2. sgid ก็ทำนองเดียวกับ suid แต่เป็นการตั้งค่าการถ่ายโอนสิทธิ์ของกลุ่ม
    ตัวอย่าง directory ที่ใช้ sgid ลองดูด้วยคำสั่ง
    ls -ld /var/mail
    drwxrwsr-x 2 root mail 4096 Apr 29 2010 /var/mail
    ได้สิทธิ์ว่า rwxrwsr-x สังเกตดูมีสัญญลักษณ์ s แทนที่จะเป็น x
    ขั้นตอนการทดลองกำหนดสิทธิ์
    สร้างไดเรกทอรีชื่อ tempo
    mkdir tempo
    ผลครั้งแรก
    ls -ld tempo
    drwxrwxr-x 2 mama mama 4096 Nov 23 20:44 tempo
    เมื่อสั่งเปลี่ยนสิทธิ์
    chmod 2755 tempo หรือ chmod g+ws tempo
    ผลครั้งหลัง
    ls -ld tempo
    drwxrwsr-x 2 mama mama 4096 Nov 23 20:44 tempo
  3. sticky bit เป็นการกำหนดว่าห้ามผู้ที่ไม่ใช่เจ้าของลบแฟ้มนี้
    ตัวอย่าง directoy ที่ใช้ sticky bit ให้ลองดูด้วยคำสั่ง
    ls -ld /tmp
    ได้สิทธิ์ว่า rwxrwxrwt สังเกตดูมีสัญญลักษณ์ t แทนที่จะเป็น x

เรียนรู้การเปลี่ยนสิทธิ์เจ้าของและกลุ่ม

  1. เปลี่ยนกลุ่มที่ถือสิทธิ์ในแฟ้มด้วยคำสั่ง chgrp
    เช่น
    ตรวจสอบข้อมูลเดิม
    ls -ld tempo
    drwxrwsr-x 2 mama mama 4096 Nov 23 20:44 tempo
    สั่งเปลี่ยนสิทธิ์
    chgrp -R adm tempo
    ตรวจสอบผล
    ls -ld tempo
    drwxrwsr-x 2 mama adm 4096 Nov 23 20:44 tempo
  2. เปลี่ยนเจ้าของผู้ถือสิทธิ์ในแฟ้มด้วยคำสั่ง chown
    ตรวจสอบข้อมูลเดิม
    ls -ld tempo
    drwxrwsr-x 2 mama adm 4096 Nov 23 20:44 tempo
    สั่งเปลี่ยนสิทธิ์
    sudo chown -R root tempo
    [sudo] password for mama:
    ตรวจสอบผล
    ls -ld tempo
    drwxrwsr-x 2 root adm 4096 Nov 23 20:44 tempo


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