PSU-netdrive10

จาก Wiki Opensource

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

ดูแลโดย WIBOON


PSU-netdrive 13: เบื้องหลังการจัดการไฟล์ของ PSU-netdrive บนระบบปฏิบัติการลินุกซ์


เกี่ยวกับ PSU-netdrive

  • PSU-netdrive เป็นการติดตั้ง file server บน ubuntu เพื่อให้บริการแก่ MS client สามารถ map nework drive โดยไม่ต้องใช้ SAMBA
  • พัฒนา shell script ขึ้นมา ดังนี้
    การติดตั้งครั้งแรก ใช้ install-psu-netdrive.sh
    การสร้างบัญชีผุ้ใช้ netuseradd.sh
    การลบบัญชีผู้ใช้ netuserdel.sh
    การสร้างกรุ๊ปเพิ่ม netgroupadd.sh


shell script ชื่อ install-psu-netdrive.sh

  • ระบบสร้าง group ชื่อ sftponly และ member เพิ่มขึ้นมา
  • สร้างพื้นที่สำหรับ home อยู่ที่ /sftp/home
  • สร้างพื้นที่สำหรับ share อยู่ที่ /sftp/share
  • สร้าง พื้นที่สำหรับ share ของทุกคน อยู่ที่ /sftp/share/gmember พร้อมกำหนดสิทธิ์พื้นที่ในการใช้งานแชร์ไฟล์ แบบ ทุกคนมีสิทธิอ่าน/เขียน/ลบ
  • shell script นี้ทำลำดับคำสั่งดังนี้
    sudo groupadd sftponly
    sudo mkdir -p /sftp
    sudo mkdir -p /sftp/home
    sudo mkdir -p /sftp/share
    sudo chmod +t /sftp/share
    sudo groupadd member
    sudo mkdir -p /sftp/share/gmember
    sudo chgrp -Rv member /sftp/share/gmember
    sudo chmod g+rws,o-rwx /sftp/share/gmember


shell script ชื่อ netuseradd.sh

  • ตัวอย่างสร้าง username ชื่อ david ด้วยคำสั่ง sudo netuseradd.sh david เมื่อรันจะทำคำสั่งย่อยๆดังนี้
    sudo useradd -m -b /sftp/home -s /bin/bash david
    echo "change password of david"
    sudo passwd david
    sudo chmod -R o-rwx /sftp/home/david
    sudo gpasswd -a david member
    sudo gpasswd -a david sftponly


shell script ชื่อ netuserdel.sh

  • ตัวอย่างลบ username ชื่อ david ด้วยคำสั่ง sudo netuserdel.sh david เมื่อรันจะทำคำสั่งย่อยๆดังนี้
    sudo gpasswd -d david member
    sudo gpasswd -d david sftponly
    sudo userdel -r david


shell script ชื่อ netgroupadd.sh

  • ตัวอย่างสร้าง group เพิ่มใหม่ ชื่อ mania ด้วยคำสั่ง sudo netgroupadd.sh mania เมื่อรันจะทำคำสั่งย่อยๆดังนี้
    sudo groupadd mania
    sudo mkdir -p /sftp/share/gmania
    sudo chgrp -Rv mania /sftp/share/gmania
    sudo chmod g+rws,o-rwx /sftp/share/gmania


ตัวอย่างพิเศษนอกเหนือจาก shell script ที่เตรียมไว้

การกำหนดให้ user แต่ละคนไม่สามารถแก้ไขไฟล์ของ user คนอื่นที่แม้จะอยู่ใน group เดียวกัน เช่น bob และ john อยู่ group ชื่อ mania ให้แก้ไขด้วยคำสั่ง

  • ใส่ Sticky bit เข้าไปที่ไดเรกทอรี ด้วยคำสั่ง
    sudo chmod +t /sftp/share/gmania

และหากต้องการให้คนนอก group ชื่อ mania มาเห็นไฟล์ได้แต่สร้างหรือลบไฟล์ไม่ได้ เช่น susan เดิมไม่สามารถเข้าไปดูไฟล์ใน ไดเรกทอรี gmania ได้ ให้แก้ไขด้วยคำสั่ง

  • ให้เพิ่ม o=rx แทน o-rwx คืออนุญาตให้ใครๆก็ได้เข้ามาดูไฟล์
    sudo chmod g+rws,o=rx /sftp/share/gmania