ฉันเอ็กซ์พอร์ตการแชร์ NFS จากเซิร์ฟเวอร์และติดตั้งจากไคลเอนต์ ฉันได้รับอนุญาตให้ปฏิเสธข้อผิดพลาดเมื่อฉันพยายามเข้าถึง สงสัยว่าทำไม ทำให้การส่งออกสามารถเขียนได้ทั่วโลก สร้างไฟล์ที่นั่น และกลายเป็นว่าไคลเอ็นต์เข้าถึงไฟล์ด้วยผู้ใช้อื่นซึ่งแตกต่างจากที่ฉันคาดไว้
การส่งออกของฉัน:
/ส่งออก fd48:2b50:6a95:a6db::4(ro,no_subtree_check,fsid=0,all_squash)
/export/backup-fs fd48:2b50:6a95:a6db::4(rw,no_subtree_check,root_squash,anonuid=34,anongid=34)
(หมายเหตุ: ที่อยู่ IP สาธารณะเปลี่ยนเป็นส่วนตัวด้วยเหตุผลด้านความเป็นส่วนตัว)
ความตั้งใจที่จะทำที่นี่ root_squash
, แต่ผู้ใช้รูทของไคลเอนต์ควรถูกบีบให้เป็น UID 34 ในเครื่อง (ผู้ใช้สำรอง); นี่คือจุดประสงค์ของ ไม่นอยด์
, อนงค์
. ดังนั้น หากการส่งออกเป็นของ UID/GID 34 ผู้ใช้รูทของไคลเอ็นต์ควรได้รับการปฏิบัติเหมือนเป็นเจ้าของ แต่เมื่อฉันสร้างไฟล์ในการแชร์ ไฟล์นั้นจะถูกเป็นเจ้าของ ไม่มีใคร/ไม่มีกลุ่ม
. ทำไม ทุกอย่างตรงกันระหว่างสองระบบ: ทั้งคู่มี UID/GID 34 และมีชื่อทั้งคู่ การสำรองข้อมูล
.
นอกจากนี้ฉันยังต้องเปลี่ยน /ส่งออก
ถึง แถว
ซึ่งไม่สมเหตุสมผลสำหรับฉันเพราะฉันต้องการให้รูทการส่งออกเป็นแบบอ่านอย่างเดียวและเฉพาะ subdir backup-fs เท่านั้นที่สามารถเขียนได้
ระบบเซิร์ฟเวอร์:
Ubuntu 20.04.3 LTS (GNU/Linux 5.4.0-81-generic x86_64)
นี่คือลักษณะของการเมานต์บนไคลเอนต์:
my-nfs-server:/backup-fs on /var/backups/fs/data type nfs4 (rw,relatime,vers=4.2,rsize=65536,wsize=65536,namlen=255,hard,proto=tcp6,timeo= 600,retrans=2,sec=sys,clientaddr=fd48:2b50:6a95:a6db::4,local_lock=none,addr=fdc8:d5f9:cbbf:b206::2001)
สิ่งที่ทำให้ฉันงงเป็นพิเศษคือฉันมีการกำหนดค่าเดียวกันนี้บนเซิร์ฟเวอร์ NFS อื่น และฉันเมานต์ด้วยไคลเอนต์เดียวกันและทำงานได้ตามที่ตั้งใจไว้ ฉันไม่พบความแตกต่างระหว่างการกำหนดค่าทั้งสอง แม้ว่าฉันจะมี Ubuntu ที่เก่ากว่าและเวอร์ชันเคอร์เนลที่เกี่ยวข้องในระบบอื่น