РЕДАКТИРОВАТЬ После еще нескольких копаний я обнаружил, что вы можете запустить nautilus от имени пользователя root и получить доступ к специальным URI с помощью dbus. Команда будет
sudo dbus-launch nautilus
И тогда все URI доступны. Честно говоря, я не на 100% почему это работает, но некоторая оригинальная информация, которую я нашел ниже, все еще может быть полезной.
Причина, по которой эти URI существуют, заключается в том, что Nautilus использует виртуальную файловую систему под названием Gnome Virtual File System (gvfs), которая построена поверх другой виртуальной файловой системы под названием FUSE. В частности, эти URI настроены в /usr/lib/gvfs/
каталоге с именем gvfsd- *. Это двоичные файлы, поэтому не пытайтесь их редактировать.
Когда вы монтируете общий ресурс Samba с помощью Nautilus, он использует команду gvfsd-mount (хранится в /usr/bin
) для монтирования указанного общего ресурса. Затем общий ресурс монтируется в том месте, /run/user/<UID>/gvfs/
где находится ваш идентификатор пользователя (обычно 1000 для однопользовательских систем).
Что касается возможности root использовать эти URI, то Ubuntu и я предполагаю, что другие дистрибутивы настраивают fuse так, чтобы root не мог использовать виртуальную файловую систему по соображениям безопасности. Вы заметите, что в /run/user
папке нет каталога 0 для пользователя root. /etc/fuse.conf
Файл по умолчанию не настроен , чтобы разрешить доступ суперпользователя . Это означает, что если ваш пользователь монтирует общий ресурс, даже пользователь root не может просматривать общий ресурс, не настроив Fuse для его разрешения.
На самом деле я не проверял предоставление корневого доступа к файловой системе Fuse или специальным URI, но вам может повезти, настроив его, как описано в этой ссылке, или прочитав справочную страницу Fuse .
Извините за ответ RTFM, но я не смог найти окончательного решения, и это зависит от того, на какой версии Ubuntu вы работаете, так как некоторые из каталогов / команд изменились в последних версиях.
x-nautilus-desktop
не определено / настроено/usr/lib/gvfs/
и где еще может быть? Я использую Ubuntu 13.10, не файл с именемgvfsd-x-nautilus-desktop
в/usr/lib/gvfs/
, но до сих пор этот URI (x-nautilus-desktop:///
) работает. Исходя из этого, может быть, я мог бы найти способ определить новый URI. Это моя последняя цель ...Не много, но вот что-то для всех:
На терминале или Alt + F2:
В корневой системе вам не нужны "gksudo" или "dbus-launch"
Некоторые примеры:
С другой стороны, на этом сайте показано, как создать URI для вашего скрипта или программы, которая работает на firefox и gnome. Есть довольно крутой пример сценария, который вы можете использовать в качестве справочного материала в зависимости от ваших потребностей.
Интеграция нового обработчика схемы URI в Gnome и Firefox
источник