URIs especiais do Nautilus

8

Onde esses URIs especiais usados ​​no Nautilus são definidos no Ubuntu?

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

Eles podem abrir instantaneamente locais especiais no Nautilus, digitando-os na barra de caminho.

E por que isso não funciona quando abro o Nautilus como root (é a primeira vez que vejo que o root não tem privilégios para fazer alguma coisa)?

Radu Rădeanu
fonte

Respostas:

7

EDITAR Depois de cavar um pouco mais, descobri que você pode iniciar o nautilus como root e obter acesso aos URIs especiais usando o dbus. O comando seria

sudo dbus-launch nautilus

E então os URIs estão todos disponíveis. Para ser sincero, não sou 100% por que isso funciona, mas algumas das informações originais que encontrei abaixo ainda podem ser úteis.


A razão pela qual esses URIs existem é porque o Nautilus usa um sistema de arquivos virtual chamado Gnome Virtual File System (gvfs), construído sobre outro sistema de arquivos virtual chamado FUSE. Especificamente, esses URIs são configurados no /usr/lib/gvfs/diretório denominado gvfsd- *. Estes são arquivos binários, portanto, não tente editá-los.

Quando você monta um compartilhamento Samba usando o Nautilus, ele usa o comando gvfsd-mount (armazenado em /usr/bin) para montar o compartilhamento especificado. O compartilhamento é então montado /run/user/<UID>/gvfs/onde está seu ID de usuário (geralmente 1000 para sistemas de usuário único).

Quanto ao root poder usar esses URIs, o Ubuntu, e eu estou assumindo outras distribuições, configura o fusível para que o root não possa usar o sistema de arquivos virtual por razões de segurança. Você notará na /run/userpasta que não há diretório 0 para o usuário root. O /etc/fuse.confarquivo por padrão não está configurado para permitir o acesso do usuário root . Isso significa que, se o usuário monta um compartilhamento, mesmo o usuário root não pode visualizá-lo sem configurar o Fuse para permitir isso.

Na verdade, eu não testei fornecendo acesso root ao sistema de arquivos Fuse ou URIs especiais, mas você pode ter sorte em configurá-lo conforme descrito neste link ou ler na página de manual do Fuse .

Desculpe pela resposta do RTFM, mas não consegui encontrar uma solução definitiva e depende da versão do Ubuntu em que você está, pois alguns diretórios / comandos foram alterados nas versões recentes.

Rothgar
fonte
Obrigado pela boa informação. Alguma idéia de por que x-nautilus-desktopnão está definido / configurado /usr/lib/gvfs/e onde outro lugar poderia estar? Eu uso o Ubuntu 13.10, não há nenhum arquivo chamado gvfsd-x-nautilus-desktopno /usr/lib/gvfs/, mas ainda este URI ( x-nautilus-desktop:///) está funcionando. A partir disso, talvez eu possa encontrar uma maneira de definir um novo URI. Este é o meu objetivo final ...
Radu Rădeanu
@ RaduRădeanu Olhei em volta, mas não consegui encontrar um arquivo ou referência ao x-nautilus-desktop: /// URI. Não consegui encontrar nenhum arquivo com esse nome, o que me faz suspeitar que não é um componente modular como os outros URIs e pode estar codificado em gvfs ou fuse. Não sou muito desenvolvedor, mas você pode conferir o código-fonte gvfs.
Rothgar #
Ok, obrigado novamente. Vou aceitar a sua resposta, mas por favor, se você encontrar algo de novo nesse sentido, é só me avisar ...
Radu Rădeanu
1

Não muito, mas aqui está algo para todos:

No terminal ou por Alt + F2:

gksudo dbus-launch nautilus computer:///

Em um sistema raiz, você não precisa de "gksudo" ou "dbus-launch"

Alguns exemplos:

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

Por outro lado, este site mostra como criar um URI para o seu script ou programa que funciona no firefox e no gnome. Há um exemplo de script bem legal que você pode usar como referência, dependendo da sua necessidade.

Integrando um novo manipulador de esquema de URIs ao Gnome e Firefox

DarkXDroid
fonte