Warum wird root die Berechtigung verweigert, wenn sie auf das FUSE-Verzeichnis zugreift?

24

Ich benutze ein FUSE-Dateisystem ohne Probleme als mein eigener Benutzer, aber root kann nicht auf meine FUSE-Mounts zugreifen. Stattdessen gibt jeder Befehl Permission denied. Wie kann ich root die Erlaubnis geben, diese Reittiere zu lesen?

~/top$ sudo ls -l
total 12
drwxr-xr-x 2 yonran yonran 4096 2011-07-25 18:50 bar
drwxr-xr-x 2 yonran yonran 4096 2011-07-25 18:50 foo
drwxr-xr-x 2 yonran yonran 4096 2011-07-25 18:50 normal-directory
~/top$ fuse-zip foo.zip foo
~/top$ unionfs-fuse ~/Pictures bar

Mein Benutzer, yonran , kann es gut lesen:

~/top$ ls -l
total 8
drwxr-xr-x 1 yonran yonran 4096 2011-07-25 18:12 bar
drwxr-xr-x 2 yonran yonran    0 2011-07-25 18:51 foo
drwxr-xr-x 2 yonran yonran 4096 2011-07-25 18:50 normal-directory
~/top$ ls bar/
Photos

Aber root kann keines der FUSE-Verzeichnisse lesen:

~/top$ sudo ls -l
ls: cannot access foo: Permission denied
ls: cannot access bar: Permission denied
total 4
d????????? ? ?      ?         ?                ? bar
d????????? ? ?      ?         ?                ? foo
drwxr-xr-x 2 yonran yonran 4096 2011-07-25 18:50 normal-directory
~/top$ sudo ls bar/
ls: cannot access bar/: Permission denied

Ich verwende Ubuntu 10.04: Ich installiere immer ein Update von Canonical.

$ uname -a
Linux mochi 2.6.32-33-generic #70-Ubuntu SMP Thu Jul 7 21:13:52 UTC 2011 x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 10.04.3 LTS
Release:    10.04
Codename:   lucid

Bearbeiten : Die Implikation, dass root auf die Mounts zugreifen konnte, wurde entfernt. Denken Sie mal darüber nach, vielleicht haben meine Skripte nie versucht, als root auf das Verzeichnis zuzugreifen.

yonran
quelle

Antworten:

24

So fusefunktioniert es. Wenn Sie den Zugriff auf Root-Benutzer oder andere Benutzer zulassen möchten, müssen Sie Folgendes hinzufügen:

user_allow_other

in /etc/fuse.conf und mounten Sie Ihr Fuse-Dateisystem mit allow_otheroder allow_rootals Option.

Smoking
quelle
5
Bin ich der einzige, der das liest und immer noch KEINE Ahnung hat, was er eigentlich tun soll? allow_other geht in / etc / fstab? Irgendwo anders?
Warren P
Das schaue ich mir auch gerade an. Ich denke, Sie können einfach "allow_root" zu Ihrer /etc/fuse.conf hinzufügen. Dann sind alle FUSE-Fs für root zugänglich. Für alle, die auf diese Weise vorgehen, ist dies ein Problem für das kbfs-Dateisystem von keybase, das ohne allow_root ausgeführt wird.
Diagon
Um von man mount.fuse auszuarbeiten: Abschnitt "Konfigurationen": "Einige Optionen bezüglich der Mount-Richtlinie können in der Datei /etc/fuse.conf festgelegt werden." (wie user_allow_other). Abschnitt "Allgemeine Einhängeoptionen": "allow_other: Diese Option setzt die Sicherheitsmaßnahme außer Kraft, die den Dateizugriff auf den Benutzer beschränkt, der das Dateisystem einbindet. Damit können alle Benutzer (einschließlich Root) auf die Dateien zugreifen. Diese Option darf standardmäßig nur Root sein, diese Einschränkung jedoch mit einer Konfigurationsoption entfernt werden, die im vorherigen Abschnitt beschrieben wurde. "
gatoWololo
1
@WarenP: Grundsätzlich möchten Sie Folgendes tun: 1) echo "user_allow_other"> /etc/fuse.conf 2) Wenn Sie Ihr Programm auf Sicherungsbasis ausführen, fügen Sie die Option -o allow_other hinzu, damit andere Benutzer auf den Mountpoint zugreifen können . (Beispiel: sshfs ./mountpoint -o allow_other) - Dies funktioniert, weil alle Programme, die über FUSE laufen, die Befehlszeilenoptionen von FUSE erben (wie allow_other)
felipeek