Warum kann ich mit SSHFS nicht in ein bereitgestelltes Verzeichnis schauen?

34

Ich verwende SSHFS, um ein Verzeichnis auf einem Remote-Server bereitzustellen. Auf Client und Server befindet sich ein Benutzer xxx. UID und GID sind auf beiden Feldern identisch.

ich benutze

sshfs -o kernel_cache -o auto_cache -o reconnect -o compression=no \ 
      -o cache_timeout=600 -o ServerAliveInterval=15 \
      [email protected]:/mnt/content /home/xxx/path_to/content

um das Verzeichnis auf dem Remote-Server bereitzustellen. Wenn ich mich auf dem Client als xxx anmelde, habe ich keine Probleme. Ich kann in / home / xxx / path_to / content cden.

Aber wenn ich mich auf dem Client als ein anderer Benutzer anmelde, zzz und dann

$ ls -l /home/xxx/path_to

Ich verstehe das

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

und weiter

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

Ich bekomme

ls: cannot access content: Permission denied

Wenn ich es tue

$ ls -l /mnt

auf dem remote server bekomme ich

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

Was mache ich falsch? Die Berechtigungen scheinen für mich korrekt zu sein. Liege ich falsch?

Jan Deinhard
quelle
Melden Sie sich als xxx-Benutzer an und geben Sie die Ausgabe von ls -ld /home/xxx/path_to/content?
Quanten

Antworten:

42

Ich habe die Antwort selbst gefunden. Das Problem war, dass ich die Option allow_other nicht verwendet habe.

sshfs -o allow_other -o kernel_cache -o auto_cache -o reconnect \
  -o compression=no -o cache_timeout=600 -o ServerAliveInterval=15 \
  [email protected]:/mnt/content /home/xxx/path_to/content

Um diese Option zu verwenden, müssen Sie die Option user_allow_other in /etc/fuse.conf setzen. Als ich das tat, hatte ich ein anderes Problem. Die Datei /etc/fuse.conf hatte keine Leserechte für andere Benutzer auf meiner Ubuntu-Box. Also habe ich das auch geändert und jetzt kann ich mit jedem Benutzer auf das Verzeichnis zugreifen.

Jan Deinhard
quelle
5
Die Datei /etc/fuse.conf sollte nicht für jeden Lesemöglichkeiten bieten. Die Absicht ist, dass Sie sich der Sicherungsgruppe hinzufügen, damit Sie sie über Gruppenrechte lesen können.
Jherico
1
Das Bestätigen der Notwendigkeit, user_allow_other in etc / fuse.conf auf dem Client zu aktivieren, war erforderlich, damit mein Benutzer auf Ordner außerhalb meines Ausgangsverzeichnisses auf dem Server zugreifen kann, wenn er von einer identischen UID und GID auf den Server zugreift. Auf dem Client in der Sicherungsgruppe zu sein, genügte mir, um /etc/fuse.conf auf Ubuntu zu lesen, da ich feststellte, dass die Datei auf rw_r______ root: fuse
1
Wenn Sie die Option allow_other mount verwenden möchten, wie in der obigen Antwort angegeben, beachten Sie, dass der Linux-Kernel einen ungelösten Sicherheitsfehler aufweist, der sich auf FUSE auswirkt. Siehe github.com/libfuse/libfuse/issues/15
MountainX