Frage Verzeichnis, das ein Benutzer lesen kann, aber root nicht?


Unter meinem Homedir befindet sich ein Verzeichnis namens ".gvfs". Als mein reguläres Benutzerkonto kann ich es gut lesen:

~ $ ls -lart ~raldi/.gvfs
total 4
dr-x------  2 raldi raldi    0 2009-05-25 22:17 .
drwxr-xr-x 60 raldi raldi 4096 2009-05-25 23:08 ..
~ $ ls -d ~raldi/.gvfs
dr-x------ 2 raldi raldi 0 2009-05-25 22:17 /home/raldi/.gvfs

Als root kann ich aber nicht "ls" oder gar "ls-d" sagen:

# ls ~raldi/.gvfs
ls: cannot access /home/raldi/.gvfs: Permission denied
# ls -d ~raldi/.gvfs
ls: cannot access /home/raldi/.gvfs: Permission denied

Und um sicher zu gehen:

# echo $UID $EUID
0 0

Dies ist nur eine einfache Heiminstallation von Ubuntu 8.10, kein NFS oder etwas Seltsames. Ich sehe, dass das Verzeichnis nicht-Welt-lesbar (und nicht-World-X-fähig) markiert ist, aber ich dachte, dass nichts davon gilt, wenn Sie root sind. Zum Beispiel kann ich ein Mode-000-Verzeichnis in / tmp erstellen und es an einen Nicht-Root-Benutzer weitergeben, und root hat keine Probleme, es zu lesen, es zu schreiben, was auch immer.

Irgendeine Idee was ist los?


8
2018-05-26 06:17


Ursprung


Interessanterweise erhalten Sie die gleichen Symptome, wenn Sie sshfs als normalen Benutzer verwenden und dann jede Art von Operation am Mount-Punkt als root ausführen. Der Benutzer root hat keine Berechtigung, den Bereitstellungspunkt überhaupt anzuzeigen. Sie können die Berechtigungen nicht sehen, ls -l gibt alle Fragezeichen für alle Berechtigungsbits zurück. - GodEater
"Dies ist nur eine einfache Heiminstallation von Ubuntu 8.10, kein NFS oder so etwas Seltsames". Uhm, Sicherung ist "so etwas Seltsames" - Thomas


Antworten:


Von: http://bugzilla.gnome.org/show_bug.cgi?id=534284

Das ist alles unglücklich, aber es ist a   Entscheidung, die von der   Verschmelzen Menschen auf der Kernel-Ebene (Benutzer   andere als der, der die fs montiert hat   kann nicht darauf zugreifen, einschließlich root) und   Wir können nichts dagegen tun.

Siehe auch: https://bugs.launchpad.net/gvfs/+bug/225361

Die Lösung scheint zu sein, dein zu aktualisieren /etc/fuse.conf und aktivieren Sie die user_allow_other Möglichkeit. Sie müssen vielleicht auch gvfs dazu bringen, allow_root oder allow_other zu übergeben, aber ich bin mir nicht sicher, wie ich das machen soll.

Natürlich kann es viel einfacher sein, auf alle GUI-Tools wie gvfs aufzugeben und Ihre Dateisysteme von der Befehlszeile aus zu mounten, wo Sie genau kontrollieren können, wie etwas gemounted wird.


20
2018-05-26 07:07





Das .gvfs Verzeichnis ist das Gnome VFS-Userspace-Dateisystem, das einen direkten Dateisystempfad für virtuelle Dateisysteme bietet (z. B. Remote-Samba-Mounts, Webdav-Mounts), damit Gnome bei der Arbeit mit Remote-Dateien Pfade an Programme weitergeben kann, die nicht VFS-fähig sind.

Da es sich um eine FUSE-Mountanwendung handelt, kann es Berechtigungen für root verweigern - der Agent, der die Zugriffsprüfungen durchführt, ist in diesem Fall die FUSE-Anwendung, nicht der Kernel.

Standardmäßig ist der gvfs Daemon erlaubt dem Besitzer nur, das Verzeichnis zu durchlaufen.


5
2018-03-19 14:40





Es könnte ein paar Dinge sein, in der Reihenfolge der Wahrscheinlichkeit

  • Überprüfen Sie / var / log / messages (oder / var / log / syslog) auf mögliche Dateisystemfehler
  • Benutzt du SELinux?
  • Google schlägt vor, lsattr ~ raldi / .gvfs könnte auf spezielle Fähigkeiten hinweisen, die auf diese Datei angewendet werden.

0
2018-05-26 06:27



Ich lief fsck auf der Festplatte und es gab keine Probleme. Ich benutze SELinux nicht. Wenn ich lsattr als mein Benutzerkonto ausführe, gibt es keine Ausgabe. Wenn ich es als root ausführe, erhalte ich den Fehler "permission denied". - raldi
Sieht so aus, als ob Zoredache die Antwort hat - Dave Cheney