ทำไม SSHFS ไม่ให้ฉันดูในไดเรกทอรีที่เมานท์?


34

ฉันใช้ SSHFS เพื่อติดตั้งไดเรกทอรีบนเซิร์ฟเวอร์ระยะไกล มี xxx ผู้ใช้บนไคลเอนต์และเซิร์ฟเวอร์ UID และ GID เหมือนกันทั้งสองกล่อง

ฉันใช้

sshfs -o kernel_cache -o auto_cache -o reconnect -o compression=no \ 
      -o cache_timeout=600 -o ServerAliveInterval=15 \
      xxx@yyy.yyy.yyy.yyy:/mnt/content /home/xxx/path_to/content

เพื่อเมานต์ไดเรกทอรีบนเซิร์ฟเวอร์ระยะไกล เมื่อฉันเข้าสู่ระบบในฐานะ xxx บนไคลเอนต์ฉันไม่มีปัญหา ฉันสามารถ cd ลงใน / home / xxx / path_to / content

แต่เมื่อฉันเข้าสู่ระบบลูกค้าเป็นผู้ใช้อื่น zzz แล้ว

$ ls -l /home/xxx/path_to

ฉันได้รับสิ่งนี้

d?????????   ? ?    ?        ?                ? content

และใน

$ ls -l /home/xxx/path_to/content

ฉันเข้าใจ

ls: cannot access content: Permission denied

เมื่อฉันทำ

$ ls -l /mnt

บนเซิร์ฟเวอร์ระยะไกลที่ฉันได้รับ

drwxr-xr-x 6 xxx xxx  4096 2011-07-25 12:51 content

ผมทำอะไรผิดหรือเปล่า? สิทธิ์ดูเหมือนจะถูกต้องสำหรับฉัน ฉันผิดหรือเปล่า?


เข้าสู่ระบบในฐานะผู้ใช้ xxx และให้ผลลัพธ์ของเราls -ld /home/xxx/path_to/content?
quanta

คำตอบ:


42

ฉันพบคำตอบแล้ว ปัญหาคือฉันไม่ได้ใช้ตัวเลือก allow_other

sshfs -o allow_other -o kernel_cache -o auto_cache -o reconnect \
  -o compression=no -o cache_timeout=600 -o ServerAliveInterval=15 \
  xxx@yyy.yyy.yyy.yyy:/mnt/content /home/xxx/path_to/content

ในการใช้ตัวเลือกนี้คุณต้องตั้งค่าตัวเลือก user_allow_other ใน /etc/fuse.conf เมื่อฉันทำสิ่งนี้ฉันมีปัญหาอื่น ไฟล์ /etc/fuse.conf ยังไม่ได้อ่านสิทธิ์สำหรับผู้ใช้รายอื่นในกล่อง Ubuntu ของฉัน ดังนั้นฉันจึงเปลี่ยนมันเช่นกันและตอนนี้ฉันสามารถเข้าถึงไดเรกทอรีกับผู้ใช้คนใดก็ได้


5
ไฟล์ /etc/fuse.conf ไม่ควรมีตัวเลือกการอ่านสำหรับทุกคน จุดประสงค์คือคุณเพิ่มตัวเองในกลุ่มฟิวส์เพื่อให้คุณสามารถอ่านได้ผ่านสิทธิ์ของกลุ่ม
Jherico

1
ยืนยันว่าจำเป็นต้องเปิดใช้งาน user_allow_other ใน etc / fuse.conf บนไคลเอนต์เป็นสิ่งจำเป็นสำหรับผู้ใช้ของฉันในการเข้าถึงโฟลเดอร์นอกไดเรกทอรีบ้านของฉันบนเซิร์ฟเวอร์เมื่อเข้าถึงเซิร์ฟเวอร์จาก UID และ GID ที่เหมือนกัน การอยู่ในกลุ่มฟิวส์บนไคลเอนต์นั้นเพียงพอสำหรับฉันที่จะอ่าน /etc/fuse.conf บน Ubuntu เนื่องจากฉันพบว่าไฟล์ถูกตั้งค่าไว้ rw_r______ root: fuse

1
หากคุณตั้งใจจะใช้ตัวเลือก allow_other mount เช่นเดียวกับคำตอบข้างต้นโปรดทราบว่าเคอร์เนล Linux มีข้อบกพร่องด้านความปลอดภัยที่ไม่ได้รับการแก้ไขที่มีผลต่อ FUSE ดูgithub.com/libfuse/libfuse/issues/15
MountainX
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.