Почему мои монстры gvfs не отображаются в ~ / .gvfs или / run / user / & lt; login & gt; / gvfs?

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

Редактирование: отладка после ответа Джеймса Хенстриджа и enzotib's комментарий показал, что на моем ноутбуке gvfs-fuse-daemon работает, и, следовательно, монтирования gvfs появляются в ~/.gvfs, тогда как на 2 рабочих станциях, где ~/.gvfs остается пустым, gvfs-fuse-daemon не работает. На всех трех машинах работают другие процессы 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? Какой демон несет ответственность? [F14]? Какова роль gvfs-fuse-daemon? Это только создает точку крепления плавкого предохранителя в ~/.gvfs?

Edit: 12.10 и более поздние версии монтируются под /run/user/<login>/gvfs.

1
задан 22 December 2012 в 03:16

8 ответов

Решена проблема (вид).

В Ubuntu 12.10 точка монтирования появляется в /run/user/(your username)/gvfs/sftp\:host\=\192.168.xxx.xxx.

Надеюсь, что помогает

18
ответ дан 25 May 2018 в 18:52

В Ubuntu 12.10 пути были изменены:

$ mount |grep gvfs
gvfsd-fuse on /run/user/pcm/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=pcm)
3
ответ дан 25 May 2018 в 18:52

В Debian 6.0 хриплый, с lxde и nautilus. Я также нашел каталог ~ / .gvfs. Я попытался запустить

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

Но он сказал мне: / dev / fuse: Permission Denied.

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

Я подумал, что, может быть, это потому, что я не в предохранителе group, то я добавил свою учетную запись в эту группу. После перезагрузки gvfs mount отображается в ~ / .gvfs правильно.

3
ответ дан 25 May 2018 в 18:52

У меня аналогичная проблема с моей системой 12.04 Precise.

Диски, которые появляются в Nautilus, не отображаются в ~/.gvfs, особенно после цикла приостановки / возобновления. gvfs-fuse-daemon работает, но его убить и перезапустить не исправить проблему.

Я обнаружил, что перезапуск Nautilus после nautilus -q заставляет gvfs-fuse-daemon и Nautilus снова взаимодействовать - снова появляются точки монтирования.

3
ответ дан 25 May 2018 в 18:52

В новых версиях Ubuntu gvfs по умолчанию устанавливается на /run/user/$USER/gvfs/.

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

3
ответ дан 25 May 2018 в 18:52

Я задал соответствующий вопрос для своей системы Debian, и ответ был:

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

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

/run/user/<username>/gvfs
~/.gvfs
2
ответ дан 25 May 2018 в 18:52

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

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

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-акций с помощью: [ ! d4]

man mount.cifs
0
ответ дан 25 May 2018 в 18:52
  • 1
    Не то, что спросил ОП. – enzotib 13 September 2011 в 17:24
  • 2
    Нет, но кинан сказал: «Но я хочу получить доступ через командную строку, поэтому мне нужна точка монтирования в файловой системе», поэтому я просто пытаюсь помочь. – Stacey Richards 13 September 2011 в 17:31
  • 3
    Благодарю. Я должен был упомянуть, что я рассмотрел это решение, но у него imho есть 2 основных недостатка, которые делают его неосуществимым: 1) файл учетных данных должен содержать пароль в виде обычного текста, что неприемлемо на общей машине, 2) он требует привилегий root и мне нужно решение, которое также работает на машинах, где у меня нет sudo – kynan 15 September 2011 в 03:20

На данный момент ...

#!/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
0
ответ дан 25 May 2018 в 18:52
  • 1
    Короче говоря, этот сценарий будет приятным. Когда работа cron должна работать? – mook765 28 September 2016 в 05:20

Другие вопросы по тегам:

Похожие вопросы: