Data Codes through Eyeglasses

การกำหนด user ในการ upload files ผ่าน sftp บน NFS server สามารถทำได้โดยทำตามขั้นตอนดังนี้

  1. กำหนดสิทธิ์การเข้าถึงไฟล์ในไดเร็กทอรี NFS

กำหนดสิทธิ์การเข้าถึงไฟล์ในไดเร็กทอรี NFS โดยแก้ไขไฟล์ /etc/exports

/data 192.168.1.0/24(rw,no_root_squash,sync,anonuid=1000,anongid=1000)

ในไฟล์ /etc/exports แต่ละบรรทัดจะกำหนดข้อมูลดังนี้

  • /data คือไดเร็กทอรีที่ต้องการให้ NFS Server ให้บริการ
  • 192.168.1.0/24 คือเครือข่ายที่อนุญาตให้เข้าถึง NFS Server
  • rw,no_root_squash,sync,anonuid=1000,anongid=1000 คือตัวเลือกการกำหนดค่า NFS Server

ตัวเลือกการกำหนดค่า NFS Server มีดังนี้

  • rw อนุญาตให้อ่านและเขียนไฟล์
  • no_root_squash อนุญาตให้ผู้ใช้ root บนเครื่องลูกค้าเข้าถึงไฟล์ใน NFS Server ได้
  • sync บังคับให้ NFS Server ซิงค์ไฟล์กับเครื่องลูกค้าทันที
  • anonuid=1000 กำหนด UID ให้กับผู้ใช้ที่ไม่ระบุชื่อบนเครื่องลูกค้าเป็น 1000
  • anongid=1000 กำหนด GID ให้กับผู้ใช้ที่ไม่ระบุชื่อบนเครื่องลูกค้าเป็น 1000
  1. กำหนด user

สร้าง user โดยรันคำสั่งต่อไปนี้

useradd -d /home/user -m user

ในคำสั่งข้างต้น

  • useradd คือคำสั่งสำหรับสร้าง user
  • -d คือตัวเลือกสำหรับกำหนดไดเร็กทอรีเริ่มต้นของ user
  • -m คือตัวเลือกสำหรับสร้างไดเร็กทอรีเริ่มต้นของ user หากไม่ระบุจะสร้างไดเร็กทอรีเปล่า
  1. กำหนดรหัสผ่านให้ user

กำหนดรหัสผ่านให้ user โดยรันคำสั่งต่อไปนี้

passwd user
  1. กำหนดสิทธิ์การเข้าถึงไฟล์

กำหนดสิทธิ์การเข้าถึงไฟล์ โดยแก้ไขไฟล์ /etc/passwd

user:x:1000:1000:user:/home/user:/bin/bash

ในไฟล์ /etc/passwd แต่ละบรรทัดจะกำหนดข้อมูลดังนี้

  • user คือชื่อ user
  • x คือรหัสผ่าน (หากต้องการซ่อนรหัสผ่านให้ใส่ ! แทน)
  • 1000 คือ UID
  • 1000 คือ GID
  • user คือชื่อโฮมไดเร็กทอรี
  • /bin/bash คือเชลล์เริ่มต้น

หลังจากทำตามขั้นตอนข้างต้นแล้ว user จะสามารถ upload files ผ่าน sftp ไปยังไดเร็กทอรี NFS ได้

ตัวอย่างการใช้งาน

สมมติว่าเรามี user ชื่อ user และไดเร็กทอรี /data ที่ต้องการให้ user user สามารถ upload files ได้

เราสามารถกำหนดสิทธิ์การเข้าถึงไฟล์ดังนี้

chown user:user /data

หลังจากนั้น user user จะสามารถ upload files ไปยังไดเร็กทอรี /data ได้

หากต้องการกำหนดสิทธิ์การเข้าถึงไฟล์เฉพาะบางไฟล์หรือไดเร็กทอรีย่อย ให้ใช้คำสั่ง chmod แทน chown

นอกจากนี้ ยังสามารถกำหนดสิทธิ์การเข้าถึงไฟล์ให้กับ user เฉพาะบนเครื่องลูกค้าได้ โดยแก้ไขไฟล์ /etc/exports ดังนี้

/data 192.168.1.0/24(rw,no_root_squash,sync,anonuid=1000,anongid=1000,user=user)

ในไฟล์ /etc/exports แต่ละบรรทัดจะกำหนดข้อมูลดังนี้

  • user คือชื่อ user ที่อนุญาติให้เข้าถึงไฟล์

หากต้องการกำหนดสิทธิ์การเข้าถึงไฟล์ให้กับ user หลาย user สามารถใช้เครื่องหมาย , คั่นชื่อ user ดังนี้

/data 192.168.1.0/24(rw,no_root_squash,sync,anonuid=1000,anongid=1000,user=user1,user2)