การจัดพื้นที่แบ่งใช้ร่วมกันของผู้ใช้

จาก Wiki Opensource

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

ดูแลโดย WIPAT


เป้าหมาย

  • ให้เข้าใจการจัดพื้นที่แบ่งใช้ร่วมกันของ user และ group ต่างๆ


  1. ตัวอย่างต้องการสร้างพื้นที่ /area/share/gstaff ให้สมาชิกของ group ชื่อ staff ที่มี user จำนวน 2 คน คือ lazy และ baby
  2. สร้าง user ชื่อ lazy ด้วยคำสั่งว่า  sudo useradd  -m -s /bin/bash lazy  แล้วตั้งรหัสผ่านด้วยคำสั่งว่า sudo passwd lazy
  3. สร้าง user ชื่อ baby ด้วยคำสั่งว่า  sudo useradd  -m -s /bin/bash baby  แล้วตั้งรหัสผ่านด้วยคำสั่งว่า sudo passwd baby
  4. สร้าง group ชื่อ staff  ใช้คำสั่งว่า  sudo groupadd staff
  5. เพิ่ม user คือ lazy และ baby เข้าใปในสมาชิกของ group staff ด้วยคำสั่งว่า  sudo gpasswd -a lazy staff  และ sudo gpasswd -a baby staff
  6. สร้างพื้นที่ /area/share/gstaff สำหรับให้ share ใช้งานภายใน group ทำดังนี้
    สร้าง directory ขึ้นมาก่อน ด้วยคำสั่ง sudo mkdir -p /area /area/share /area/share/gstaff
    ตั้งค่าห้ามลบแฟ้มข้อมูลที่ตนเองไม่ใช้เป็นเจ้าของ ด้วยคำสั่ง  sudo chmod +t /area/share
    ตั้งค่าให้ group staff เป็นเจ้าของ directory ด้วยคำสั่ง  sudo chgrp -Rv staff /area/share/gstaff
    ตั้งค่าให้ user ใน group staff สามารเขียนอ่านได้ ด้วยคำสั่ง  sudo chmod -R g+ws /area/share/gstaff
    แค่นี้ก็จะได้พื้นที่ share กันใช้งานแล้ว ลองใช้คำสั่งตรวจดูว่าพื้นที่พร้อมใช้งาน
    ใช้คำสั่ง  ls -ld /area/*  ได้คำตอบประมาณว่า drwxr-xr-t 3 root root 4096 2012-01-11 16:50 /area/share
    ใช้คำสั่ง ls -ld /area/share/*  ได้คำตอบประมาณว่า drwxrwsr-x 2 root staff 4096 2012-01-11 16:50 /area/share/gstaff
  7. ให้ login ใหม่เข้าทำงานด้วยชื่อ lazy แล้วลองใช้คำสั่งประมาณว่า  ls -l /tmp > /area/share/gstaff/test-tmp.txt
    ตรวจสอบด้วยคำสั่ง ls -l /area/share/gstaff  อาจได้ผลประมาณว่า -rw-r--r-- 1 lazy staff 64 2012-01-11 16:59 test-tmp.txt
    หากพบว่าสิทธิ์ของ group เขียนไม่ได้ดังตัวอย่างที่เห็นคือ -rw-r--r--  แสดงว่าค่า umask ยังไม่ถูกต้อง
    ใช้คำสั่ง umask อาจได้ผลว่า 0022 แสดงไม่ถ่ายทอดสิทธิ์ของ group มาให้ด้วย ต้องแก้ไข umask ใหม่ ให้ถูกต้องเป็น 0002
  8. การแก้ไข umask ต้องไปแก้ไขแฟ้ม /etc/profile (ต้องใช้สิทธิ์ระดับ root) 
    โดยแก้ไขหรือเพิ่มบรรทัดว่า umask 0002 เข้าไปต่อท้ายสุดของแฟ้ม /etc/profile นี้
  9. ให้ผู้ใช้ชื่อ lazy ทำการ logut ก่อน แล้ว login เข้าไปใหม่อีกครั้งเพื่อรับสิทธิ์ umask ใหม่
    ใช้คำสั่ง umask ได้ผลว่า 0002 แล้วใช้คำสั่ง   ls -l /tmp > /area/share/gstaff/test-tmp.txt
    ตรวจสอบด้วยคำสั่ง ls -l /area/share/gstaff  อีกที คราวนี้ได้ผลประมาณว่า -rw-rw-r-- 1 lazy staff 64 2012-01-11 17:10 test-tmp.txt
  10. ให้ login เข้าด้วยชื่อ  baby  แล้วใช้คำสั่ง ls -l /area/share/gstaff  ได้ผลเหมือนกันประมาณว่า -rw-rw-r-- 1 lazy staff 64 2012-01-11 17:10 test-tmp.txt
    สั่งลบด้วยคำสั่ง rm /area/share/gstaff/test-tmp.txt  จะพบว่าระบบสามารถลบแฟ้ม  /area/share/gstaff/test-tmp.txt  ได้