ฉันส่งออกการแชร์ NFS จากเซิร์ฟเวอร์และติดตั้งจากไคลเอนต์ ฉันได้รับอนุญาตถูกปฏิเสธข้อผิดพลาดเมื่อพยายามเข้าถึง สงสัยว่าทำไม ทำให้การส่งออกสามารถเขียนได้ทั่วโลก สร้างไฟล์ที่นั่น และปรากฏว่าลูกค้าเข้าถึงไฟล์โดยใช้ผู้ใช้ที่แตกต่างจากที่ฉันคาดไว้

การส่งออกของฉัน:

/export             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 ในเครื่อง (ผู้ใช้สำรอง); นี่คือจุดประสงค์ของanonuid, anongid. ดังนั้น หากการเอ็กซ์พอร์ตเป็นของ UID/GID 34 ผู้ใช้รูทของไคลเอ็นต์ควรได้รับการปฏิบัติเหมือนเป็นเจ้าของ แต่เมื่อฉันสร้างไฟล์ในการแชร์ ไฟล์นั้นจะกลายเป็นของnobody/nogroup. ทำไม? ทุกอย่างตรงกันระหว่างสองระบบ: ทั้งคู่มี UID/GID 34 และทั้งสองชื่อbackup.

นอกจากนี้ฉันต้องเปลี่ยน/exportเป็นrwซึ่งไม่สมเหตุสมผลสำหรับฉันเลยเพราะฉันต้องการให้รูทการส่งออกเป็นแบบอ่านอย่างเดียวและมีเพียง 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 ที่เก่ากว่าและเวอร์ชันเคอร์เนลที่เกี่ยวข้องในระบบอื่น

no answer