URI spéciaux Nautilus

8

Où ces URI spéciaux utilisés dans Nautilus sont-ils définis dans Ubuntu?

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

Ceux-ci peuvent ouvrir instantanément des emplacements spéciaux dans Nautilus en les tapant dans la barre de chemin.

Et pourquoi cela ne fonctionne-t-il pas lorsque j'ouvre Nautilus en tant que root (c'est la première fois que je vois que root n'a pas les privilèges pour faire quelque chose)?

Radu Rădeanu
la source

Réponses:

7

EDIT Après avoir creusé un peu plus, j'ai découvert que vous pouvez lancer nautilus en tant que root et accéder aux URI spéciaux en utilisant dbus. La commande serait

sudo dbus-launch nautilus

Et puis les URI sont tous disponibles. Pour être honnête, je ne sais pas à 100% pourquoi cela fonctionne, mais certaines des informations originales que j'ai trouvées ci-dessous peuvent toujours être utiles.


La raison pour laquelle ces URI existent est que Nautilus utilise un système de fichiers virtuel appelé Gnome Virtual File System (gvfs) qui est construit au-dessus d'un autre système de fichiers virtuel appelé FUSE. Plus précisément, ces URI sont configurés dans le /usr/lib/gvfs/répertoire nommé gvfsd- *. Ce sont des fichiers binaires, alors n'essayez pas de les modifier.

Lorsque vous montez un partage Samba à l'aide de Nautilus, il utilise la commande gvfsd-mount (stockée dans /usr/bin) pour monter le partage que vous spécifiez. Le partage est ensuite monté à l' /run/user/<UID>/gvfs/emplacement de votre ID utilisateur (généralement 1000 pour les systèmes mono-utilisateur).

Quant à root étant capable d'utiliser ces URI, Ubuntu, et je suppose que d'autres distributions, configure le fusible afin que root ne puisse pas utiliser le système de fichiers virtuel pour des raisons de sécurité. Vous remarquerez dans le /run/userdossier qu'il n'y a pas de répertoire 0 pour l'utilisateur root. Le /etc/fuse.conffichier par défaut n'est pas configuré pour autoriser l'accès root . Cela signifie que si votre utilisateur monte un partage, même l'utilisateur root ne peut pas afficher le partage sans configurer Fuse pour l'autoriser.

Je n'ai pas réellement testé de donner un accès root au système de fichiers Fuse ou à des URI spéciaux, mais vous aurez peut-être de la chance de le configurer comme décrit dans ce lien ou de lire la page de manuel Fuse .

Désolé pour la réponse RTFM, mais je n'ai pas trouvé de solution définitive et cela dépend de la version d'Ubuntu sur laquelle vous vous trouvez car certains répertoires / commandes ont changé dans les versions récentes.

Rothgar
la source
Merci pour la bonne information. Une idée pourquoi x-nautilus-desktopn'est-elle pas définie / configurée /usr/lib/gvfs/et où pourrait-elle être ailleurs? J'utilise Ubuntu 13.10, il n'y a pas de fichier appelé gvfsd-x-nautilus-desktopdans /usr/lib/gvfs/, mais encore cette URI ( x-nautilus-desktop:///) fonctionne. À partir de cela, je pourrais peut-être trouver un moyen de définir un nouvel URI. Ceci est mon objectif final ...
Radu Rădeanu
@ RaduRădeanu J'ai regardé autour de moi, mais je n'ai pas pu trouver de fichier ou de référence au x-nautilus-desktop: /// URI. Je n'ai trouvé aucun fichier avec ce nom, ce qui me fait penser que ce n'est pas un composant modulaire comme les autres URI et peut être codé en dur dans gvfs ou fuse. Je ne suis pas vraiment un développeur mais vous voudrez peut-être consulter le code source de gvfs.
Rothgar
Ok, merci encore. J'accepterai votre réponse, mais s'il vous plaît, si vous trouvez quelque chose de nouveau dans ce sens, faites le moi savoir ...
Radu Rădeanu
1

Pas grand chose mais voici quelque chose pour tout le monde:

Au terminal ou par Alt + F2:

gksudo dbus-launch nautilus computer:///

Sur un système racine, vous n'avez pas besoin de "gksudo" ou "dbus-launch"

Quelques exemples:

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

D'autre part, ce site montre comment créer un URI pour votre script ou programme qui fonctionne sur firefox et gnome. Il existe un exemple de script assez cool que vous pouvez utiliser comme référence en fonction de vos besoins.

Intégration d'un nouveau gestionnaire de schéma d'URI à Gnome et Firefox

DarkXDroid
la source