Nautilus spezielle URIs

8

Wo werden diese speziellen URIs, die in Nautilus verwendet werden, in Ubuntu definiert?

recent:///
trash:///
x-nautilus-desktop:///
computer:///
burn:///

Diese können sofort spezielle Orte in Nautilus öffnen, indem Sie sie in die Pfadleiste eingeben.

Und warum funktionieren diese nicht, wenn ich Nautilus als root öffne (wenn ich zum ersten Mal sehe, dass root keine Berechtigungen hat, etwas zu tun)?

Radu Rădeanu
quelle

Antworten:

7

BEARBEITEN Nachdem ich weiter gegraben hatte, stellte ich fest, dass Sie nautilus als root starten und mithilfe von dbus auf die speziellen URIs zugreifen können. Der Befehl wäre

sudo dbus-launch nautilus

Und dann sind alle URIs verfügbar. Um ehrlich zu sein, bin ich nicht zu 100% der Meinung, warum dies funktioniert, aber einige der Originalinformationen, die ich unten gefunden habe, können dennoch hilfreich sein.


Der Grund, warum diese URIs existieren, ist, dass Nautilus ein virtuelles Dateisystem namens Gnome Virtual File System (gvfs) verwendet, das auf einem anderen virtuellen Dateisystem namens FUSE aufbaut. Insbesondere werden diese URIs im /usr/lib/gvfs/Verzeichnis gvfsd- * konfiguriert . Dies sind Binärdateien. Versuchen Sie also nicht, sie zu bearbeiten.

Wenn Sie eine Samba-Freigabe mit Nautilus bereitstellen /usr/bin, wird der von Ihnen angegebene Befehl mit dem Befehl gvfsd-mount (gespeichert in ) bereitgestellt. Die Freigabe wird dann dort eingehängt, /run/user/<UID>/gvfs/wo sich Ihre Benutzer-ID befindet (normalerweise 1000 für Einzelbenutzersysteme).

Da root diese URIs verwenden kann, konfiguriert Ubuntu und ich gehe von anderen Distributionen die Sicherung so aus, dass root das virtuelle Dateisystem aus Sicherheitsgründen nicht verwenden kann. Sie werden feststellen, dass in dem /run/userOrdner kein 0-Verzeichnis für den Root-Benutzer vorhanden ist. Die /etc/fuse.confDatei ist standardmäßig nicht so konfiguriert, dass der Root-Benutzer darauf zugreifen kann . Dies bedeutet, dass, wenn Ihr Benutzer eine Freigabe bereitstellt, auch der Root-Benutzer die Freigabe nicht anzeigen kann, ohne Fuse so zu konfigurieren, dass sie dies zulässt.

Ich habe nicht getestet, ob Root-Zugriff auf das Fuse-Dateisystem oder spezielle URIs gewährt werden kann, aber Sie haben möglicherweise Glück, es wie in diesem Link beschrieben zu konfigurieren oder die Fuse-Manpage zu lesen .

Entschuldigung für die RTFM-Antwort, aber ich konnte keine endgültige Lösung finden und es hängt davon ab, auf welcher Ubuntu-Version Sie sich befinden, da einige der Verzeichnisse / Befehle in den letzten Versionen geändert wurden.

Rothgar
quelle
Vielen Dank für die guten Informationen. Irgendeine Idee, warum x-nautilus-desktopnicht definiert / konfiguriert ist /usr/lib/gvfs/und wo woanders sein könnte? Ich benutze Ubuntu 13.10 gibt es keine Datei mit dem Namen ist gvfsd-x-nautilus-desktopin /usr/lib/gvfs/, aber immer noch diese URI ( x-nautilus-desktop:///) arbeitet. Ausgehend davon könnte ich vielleicht einen Weg finden, einen neuen URI zu definieren. Dies ist mein letztes Ziel ...
Radu Rădeanu
@ RaduRădeanu Ich habe mich umgesehen, konnte aber keine Datei oder keinen Verweis auf den x-nautilus-desktop finden: /// URI. Ich konnte keine Dateien mit diesem Namen finden, was mich vermuten lässt, dass es sich nicht um eine modulare Komponente wie die anderen URIs handelt und möglicherweise in gvfs oder fuse fest codiert ist. Ich bin kein großer Entwickler, aber vielleicht möchten Sie den gvfs-Quellcode
Rothgar
Ok, nochmals vielen Dank. Ich werde Ihre Antwort akzeptieren, aber bitte, wenn Sie etwas Neues in diesem Sinne finden, lassen Sie es mich einfach wissen ...
Radu Rădeanu
1

Nicht viel, aber hier ist für jeden etwas dabei:

Am Terminal oder mit Alt + F2:

gksudo dbus-launch nautilus computer:///

Auf einem Root-System benötigen Sie weder "gksudo" noch "dbus-launch".

Einige Beispiele:

computer:/// - objects for each mounted device, plus the network
network:/// - available networks to browse
burn:/// - a virtual folder for burning data CDs/DVDs
smb:/// - available windows/samba network resources
x-nautilus-desktop:/// - desktop objects and icons
file:/// - local files
trash:/// - local trash directory
themes:/// - displays all the themes that are available in the GNOME Desktop
fonts:/// - shows fonts
recent:/// - shows recent files

Auf der anderen Seite wird auf dieser Site gezeigt, wie Sie einen URI für Ihr Skript oder Programm erstellen, der mit Firefox und Gnome funktioniert. Es gibt ein ziemlich cooles Beispielskript, das Sie je nach Bedarf als Referenz verwenden können.

Integration eines neuen URIs-Schema-Handlers in Gnome und Firefox

DarkXDroid
quelle