Чому мої файли gvfs не відображаються під ~ / .gvfs або / run / user / <login> / gvfs?


35

З того, що я прочитав, під час монтажу мережевої спільної мережі через nautilus або gvfs-mountпункт монтажу повинен бути в ~/.gvfs. Здається, це не так для мене: я намагався встановити як FTP, так і SMB, як через nautilus, так і gvfs-mountпід Ubuntu Maverick і Natty, і ні в одному з випадків я не бачив жодної точки кріплення під ~/.gvfs. Я можу отримати доступ до акцій, що знаходяться в nautilus, але я хочу мати доступ через командний рядок, тому мені потрібна точка монтування у файловій системі.

Редагувати: Налагодження після відповіді Джеймса Генрідж і коментаря enzotib показало, що на моєму ноутбуці gvfs-fuse-daemonпрацює і, отже, з'являються монтажі gvfs ~/.gvfs, тоді як на двох робочих станціях, де ~/.gvfsзалишилися порожніми, gvfs-fuse-daemonне працює. На всіх 3 -х машин є й інші GVFS запущені процеси: gvfsd, gvfs-afc-volume-monitor, ...

На ноутбуці, mount | fgrep gvfsурожай

gvfs-fuse-daemon on /home/xxx/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=xxx)

Це викликає питання:

  • Як встановлюються акції без gvfs-fuse-daemonзапуску? Чи не створена в цьому випадку точка монтування і чи є кожен доступ до спільного виклику бібліотеки gvfs? Який демон відповідає? gvfsd?
  • Яка роль gvfs-fuse-daemon? Чи створює це тільки місце кріплення запобіжника ~/.gvfs?

Оновлення: 12.10 та пізніших версій програми встановлено під /run/user/<login>/gvfs.


2
Чи можете ви показати результат mount | grep gvfs?
enzotib

Відповіді:


12

У ~/.gvfsкаталозі має бути кріплення FUSE, яким обробляється gvfs-fuse-daemonпроцес. Якщо каталог видається порожнім, це вказуватиме на те, що gvfs-fuse-daemonвін не запустився правильно.

Ви можете спробувати запустити його вручну за допомогою наступної команди:

/usr/lib/gvfs/gvfs-fuse-daemon ~/.gvfs

Якщо це не вдається, ви можете спробувати перевірити, чи інше там встановлено, або навіть спочатку видалити та відтворити каталог ~ / .gvfs. Якщо все ще не вдалося, ви можете оновити своє запитання та надати будь-які повідомлення про помилки, надруковані gvfs-fuse-daemon?

** 14.04 демона називають gvfsd-fuseі його можна знайти в /usr/lib/gvfs/gvfsd-fuse.


1
Ще кілька досліджень показали, що gvfsdпередбачається запуститись gvfs-fuse-daemonавтоматично, коли gvfsdнадійде перший запит на доступ до віддаленої файлової системи. Також є помилка ubuntu / debian, яка робить ~/.gvfsкаталог нечитабельним при gvfs-fuse-daemonзбоях та видає повідомлення про помилку Транспортна кінцева точка не підключена .
кинан

Чи вирішено було колись, чому gvfsdне запускається gvfs-fuse-daemonавтоматично? За RHEL, здається, він працює так, як очікувалося для root, але не для непривілейованих користувачів.
Аарон Коплі

Насправді не відповідає на питання "Яка роль gvfs-fuse-демон" та "Як встановлюються акції без запуску gvfs-fuse-daemon?". gvfs-fuse-daemon дозволяє такі параметри, як enable_root, які за замовчуванням ігноруються при використанні gvfs-mount. Тож відповідь на ці питання ніби допомогла б вирішити тут цю вічну таємницю.
Нуццоло

Є ще один застереження! gvfs-mountвимагає DBUS, і ви будете отримувати точку монтування лише тоді, коли gvfs-mountвикористовує ТОЖИЙ DBUS SESSION як gvfs-fuse-daemon. Тому, якщо ви запускаєте SSHing в автомат і розпалюєте його dbus-daemonдля свого сеансу, вам також доведеться нерестувати окрему особу gvfs-fuse-daemon.
користувач1129682

Що ж, це 5 років потому, і це все ще здається випуском
Стюарт

20

Вирішили задачу (вид).

У Ubuntu 12.10 в меню з'являється точка монтажу /run/user/(your username)/gvfs/sftp\:host\=\192.168.xxx.xxx.

Сподіваюся, що це допомагає


4

В Ubuntu 12.10 шляхи були змінені:

$ mount |grep gvfs
gvfsd-fuse on /run/user/pcm/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=pcm)

3

На Debian 6.0 хрипкий, з lxde та nautilus. Я також виявив, що каталог ~ / .gvfs також порожній. Я намагався бігати

/usr/lib/gvfs/gvfs-fuse-daemon ~/.gvfs

Але це мені сказало: / dev / fuse: Дозвіл відхилено.

$ ll /dev/fuse
crw-rw---T 1 root fuse 10, 229 Dec 21 11:59 /dev/fuse

Я подумав, що, можливо, це тому, що я не входять у групу запобіжників, тоді я додав свій обліковий запис користувача до цієї групи. Після перезавантаження програмне забезпечення gvfs відображається в ~ / .gvfs правильно.


3

У мене є аналогічна проблема з моєю точною системою 12.04.

Накопичувачі, встановлені в Nautilus, не з'являються ~/.gvfs, особливо після призупинення / відновлення циклу. gvfs-fuse-daemonпрацює, але його усунення та перезапуск не усувають проблеми.

Я виявив, що перезапуск Nautilus після nautilus -qпричин gvfs-fuse-daemonі Наутілус знову співпрацюють - точки монтажу знову з’являються.


3

У нових версіях Ubuntu gvfs за замовчуванням встановлюється /run/user/$USER/gvfs/.

Ви можете перевірити, де це місце монтажу за замовчуванням, шукаючи рядок gvfsd-fuse вашого користувача /etc/mtab.


2

Я задав відповідне запитання для своєї системи Debian, і я відповів :

apt-get install gvfs-fuse
adduser <username> fuse

Потім перезавантажте. Після монтажу GVFS (через Nautilus) каталог спільного доступу буде знаходитися в одному з двох місць, залежно від того, яку версію Debian або Ubuntu у вас є:

/run/user/<username>/gvfs
~/.gvfs

Я впевнений, що вам не доведеться перезавантажувати. А systemctl --user restart gvfs-daemonзробив трюк для мене.
Torkel Bjørnson-Langen

0

Коли я хочу отримати доступ до файлів, спільним для роботи з Windows, безпосередньо (не переглядаючи Nautilus), я монтую спільний доступ до папки у своєму домашньому каталозі.

Наприклад. Там, якщо 192.168.16.2в домені mydomainє машина Windows з IP-адресою, яка має спільну папку, sharedі я маю каталог у своєму домашньому каталозі mnt, який я називаю , я можу змонтувати спільний mntдоступ до нього та отримати доступ до нього так, ніби він був у моєму домашньому каталозі:

sudo mount -t cifs "//192.168.16.2/shared" /home/stacey/mnt -o credentials=credentials,uid=stacey,gid=stacey

де облікові дані містять:

username=stacey
password=mypassword
domain=mydomain

Тепер я можу використовувати ls /home/stacey/mntсписок файлів і каталоги в загальному каталозі sharedна 192.168.16.2і доступі до будь-якого файлу в цій точці підключення , як я б файл на моєму жорсткому диску.

Ви можете отримати додаткову інформацію про встановлення акцій SMB за допомогою:

man mount.cifs

Не те, що просив ОП.
enzotib

2
Ні, але Кінан сказав: "але я хочу мати доступ через командний рядок, саме тому мені потрібна точка кріплення у файловій системі", тому я просто намагаюся допомогти.
Стейсі Річардс

Спасибі. Я мав би зазначити, що я розглядав це рішення, але в імхо є 2 основні мінуси, які роблять його нездійсненним: 1) файл облікових даних повинен містити пароль у простому тексті, що на загальній машині неприйнятно; 2) він вимагає привілеїв root і мені потрібно рішення , яке також працює на машинах , де я не Sudo
kynan

0

Зараз...

#!/bin/bash
# Add to Cron
# */1 * * * * /root/fixGvfs
w | grep -v root | tail -n +3 | awk '{print $1}' > /tmp/fixGvfsUsers
while read usuario
do
  id=$(id -u $usuario)
  if [ ! -f "/tmp/fixGvfs${id}" ]; then
    umount /run/user/${id}/gvfs
    if [ $? -eq 0 ]; then
      su - $usuario -c "/usr/bin/pkill gvfs*"
      touch "/tmp/fixGvfs${id}"
    fi
  fi
done < /tmp/fixGvfsUsers

3
Коротке пояснення того, що збирається зробити цей сценарій, було б непогано. Коли робота з хроном повинна працювати?
mook765
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.