การกำหนด user ในการ upload files ผ่าน sftp บน NFS server สามารถทำได้โดยทำตามขั้นตอนดังนี้
- กำหนดสิทธิ์การเข้าถึงไฟล์ในไดเร็กทอรี 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 Serverrw,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 ให้กับผู้ใช้ที่ไม่ระบุชื่อบนเครื่องลูกค้าเป็น 1000anongid=1000กำหนด GID ให้กับผู้ใช้ที่ไม่ระบุชื่อบนเครื่องลูกค้าเป็น 1000
- กำหนด user
สร้าง user โดยรันคำสั่งต่อไปนี้
useradd -d /home/user -m user
ในคำสั่งข้างต้น
useraddคือคำสั่งสำหรับสร้าง user-dคือตัวเลือกสำหรับกำหนดไดเร็กทอรีเริ่มต้นของ user-mคือตัวเลือกสำหรับสร้างไดเร็กทอรีเริ่มต้นของ user หากไม่ระบุจะสร้างไดเร็กทอรีเปล่า
- กำหนดรหัสผ่านให้ user
กำหนดรหัสผ่านให้ user โดยรันคำสั่งต่อไปนี้
passwd user
- กำหนดสิทธิ์การเข้าถึงไฟล์
กำหนดสิทธิ์การเข้าถึงไฟล์ โดยแก้ไขไฟล์ /etc/passwd
user:x:1000:1000:user:/home/user:/bin/bash
ในไฟล์ /etc/passwd แต่ละบรรทัดจะกำหนดข้อมูลดังนี้
userคือชื่อ userxคือรหัสผ่าน (หากต้องการซ่อนรหัสผ่านให้ใส่!แทน)1000คือ UID1000คือ GIDuserคือชื่อโฮมไดเร็กทอรี/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)