PSU-netdrive 13

จาก Wiki Opensource

บันทึกนี้ปรับปรุงล่าสุดเมื่อวันที่ 8-08-2555 @16:24

ดูแลโดย 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


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


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


netuserdel.sh

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


netgroupadd.sh

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


ตัวอย่างพิเศษ

การกำหนดให้ 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


เรื่องก่อนหน้า PSU-netdrive_12