ฉันมีปัญหาในการแสดงไฟล์โดยใช้การเมานต์ NFSv4 ระหว่าง
เซิร์ฟเวอร์: อูบุนตู 20.04, 192.168.1.1
ลูกค้า: Ubuntu 18.04, 192.168.1.2
บนเซิร์ฟเวอร์ ฉันมีโฟลเดอร์และไฟล์
/home/server/files/myfile.pdf
(หมายเหตุ 'เซิร์ฟเวอร์' กำลังถูกใช้เป็นชื่อบัญชีผู้ใช้) นี่คือความเป็นเจ้าของและการอนุญาตทั้งหมดของไฟล์ต้นฉบับ:
drwxr-xr-x ราก: ราก /
drwxr-xr-x root:root /home/
เซิร์ฟเวอร์ drwxr-xr-x:เซิร์ฟเวอร์ /home/server/
เซิร์ฟเวอร์ drwxrwxr-x:nfsgroup /home/server/files/
-rwxrwxrwx เซิร์ฟเวอร์:nfsgroup /home/server/files/myfile.pdf
ที่นี่ คุณสามารถดูตัวอย่างยูทิลิตี้ 'user':'group' ที่ฉันสร้างขึ้น:
nfsuser uid=127
nfsgroup gid=134
ทั้ง 'nfsuser' และ 'server' อยู่ในกลุ่ม 'nfsgroup'
บนเซิร์ฟเวอร์ฉันมีไฟล์ /ไฟล์/
ไดเร็กทอรีผูกติดกับ /srv/nfs4/files/
ใน /etc/fstab
, มีรายการ
/home/server/files /srv/nfs4/files ไม่มีการผูก 0 0
นี้ประสบความสำเร็จและฉันสามารถเห็นได้อย่างชัดเจน /srv/nfs4/files/myfile.pdf
ไฟล์เป็น
-rwxrwxrwx เซิร์ฟเวอร์:nfsgroup /srv/nfs4/files/myfile.pdf
นี่คือความเป็นเจ้าของและการอนุญาตทั้งหมดของไฟล์ที่เมาต์และเสิร์ฟ:
drwxr-xr-x ราก: ราก /
drwxr-xr-x ราก: ราก /srv/
เซิร์ฟเวอร์ drwxrwxr-x:nfsgroup /srv/nfs4/
เซิร์ฟเวอร์ drwxrwxr-x:nfsgroup /srv/nfs4/files/
-rwxrwxrwx เซิร์ฟเวอร์:nfsgroup /srv/nfs4/files/myfile.pdf
ตอนนี้ฉันต้องการส่งออกทั้งหมด /srv/nfs4/
ไดเร็กทอรีซึ่งมี bind-mounted ไฟล์/
ให้กับลูกค้า ฉันมีรายการนี้ในเซิร์ฟเวอร์ของ /etc/export
:
/srv/nfs4 192.168.1.2(rw,ซิงค์,fsid=0,root_squash,all_squash,anonuid=127,anongid=134,no_subtree_check)
โปรดสังเกตเป็นพิเศษว่า all_squash, anongid=127, anongid=134
กลุ่มของการตั้งค่าทำให้ผู้ใช้ไคลเอนต์ 'ไคลเอนต์' ถูกจดจำเป็น 'nfsuser' ใน 'nfsgroup' เกี่ยวกับการอนุญาต
หลังจากที่ฉันส่งออกโดยใช้ $ sudo exportfs -ra
ฉันเมานต์ไปยังไดเร็กทอรีระดับรูท /nsfffiles/
บนไคลเอ็นต์โดยใช้คำสั่ง $ sudo เมานต์ -t nfs 192.168.1.1:/srv/nfs4 /nsffiles
.
ผลก็คือฉัน สามารถดู ที่ส่งออก ไฟล์/
ไดเร็กทอรีภายใน /nsfffiles/
บนไคลเอนต์ อย่างไรก็ตาม ฉันไม่เห็นเนื้อหาของมัน:
$ ls -Alhd /nsfffiles/
drwxrwxr-x 8 ลูกค้า 134 4.0K 14 พ.ย. 20:37 /nsfffiles/
$ ls -Alhd /nsfffiles/files/
drwxr-xr-x 2 รูท รูท 4.0K 14 พ.ย. 20:36 /nsfffiles/files/
$ ls -Alh /nsfffiles/files/
รวม 0
ความจริงที่ว่าไคลเอนต์ NFS สามารถมองเห็น ไฟล์/
ไดเร็กทอรีเลยบ่งชี้ว่าไม่มีอะไรผิดปกติโดยพื้นฐานกับบริการ NFS ของฉันหรือเครือข่ายท้องถิ่น ไม่มีปัญหาไฟร์วอลล์ และฉันไม่จำเป็นต้องติดตั้งแพ็คเกจเพิ่มเติมใดๆ นอกจากนี้ ก่อนหน้านี้ฉันติดตั้ง NFS ได้อย่างสมบูรณ์ภายใต้โครงสร้างโฟลเดอร์ที่แตกต่างกันเล็กน้อย (ไฟล์/
อยู่ในไดเร็กทอรีนอกบ้าน เป็นต้น) ดังนั้นฉันจึงรู้ว่าพื้นฐานนั้นดีในเรื่องนั้น
ฉันคิดว่าสาเหตุที่เป็นไปได้มากที่สุดที่ทำให้ใช้งานไม่ได้ในตอนนี้คือการเปลี่ยนแปลงความเป็นเจ้าของ/การอนุญาตเล็กน้อยระหว่างการตั้งค่าก่อนหน้ากับการตั้งค่าปัจจุบัน โดยเฉพาะอย่างยิ่ง ไดเร็กทอรีที่เมาท์คือ
ฝั่งเซิร์ฟเวอร์: `/srv/nfs4/` เซิร์ฟเวอร์ drwxrwxr-x:nfsgroup
ฝั่งไคลเอ็นต์: `/nsfffiles/` ไคลเอนต์ drwxrwxr-x:134
ไดเร็กทอรีที่มีอยู่คือ
ฝั่งเซิร์ฟเวอร์: `/srv/nfs4/files/` เซิร์ฟเวอร์ drwxrwxr-x:nfsgroup
ฝั่งไคลเอ็นต์: `/nsfffiles/files/` drwxr-xr-x root:root
นั่นคือสำหรับไดเร็กทอรีที่เมาท์ การอนุญาตจะแปลงเป็น เซิร์ฟเวอร์:nfsgroup -> ลูกค้า:134
ซึ่งคาดว่า. อย่างไรก็ตาม สิทธิ์สำหรับไดเร็กทอรีที่มีอยู่จะแปลงเป็น เซิร์ฟเวอร์:nfsgroup -> รูท:รูท
. ทำไม ราก:ราก
และไม่ ลูกค้า:134
?
ServerFault นี้ คำถาม ฟังดูคล้ายกัน แต่เกี่ยวข้องกับ Windows และฉันไม่สามารถบอกได้ว่าคำตอบเดียวที่ใช้ได้
Unix.SE นี้ คำถาม เกี่ยวข้องกับการอนุญาตไฟล์ NFS สำหรับการตั้งค่า Windows/Linux; ข้อมูลทั้งหมดที่ฉันสามารถรวบรวมได้จากสิ่งที่ฉันรู้แล้วและคิดว่าฉันได้รับการดูแลแล้ว
โปรดตอบกลับเฉพาะเมื่อคุณรู้ว่าคุณกำลังพูดถึงอะไร หากคุณไม่สามารถต้านทานการโพสต์เดาสุ่มได้ โปรดระบุว่าเป็นการเดาสุ่ม หรือคุณทราบ ให้ข้อมูลเพียงพอที่ผู้อ่านของคุณสามารถบอกความแตกต่างได้