Из того, что я прочитал, при установке сетевого ресурса через 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.
Решена проблема (вид).
В Ubuntu 12.10 точка монтирования появляется в /run/user/(your username)/gvfs/sftp\:host\=\192.168.xxx.xxx.
Надеюсь, что помогает
В Ubuntu 12.10 пути были изменены:
$ mount |grep gvfs
gvfsd-fuse on /run/user/pcm/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=pcm)
В 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 правильно.
У меня аналогичная проблема с моей системой 12.04 Precise.
Диски, которые появляются в Nautilus, не отображаются в ~/.gvfs, особенно после цикла приостановки / возобновления. gvfs-fuse-daemon работает, но его убить и перезапустить не исправить проблему.
Я обнаружил, что перезапуск Nautilus после nautilus -q заставляет gvfs-fuse-daemon и Nautilus снова взаимодействовать - снова появляются точки монтирования.
В новых версиях Ubuntu gvfs по умолчанию устанавливается на /run/user/$USER/gvfs/.
Вы можете проверить, где находится точка монтирования по умолчанию, ища линию gvfsd-fuse вашего пользователя в /etc/mtab.
Я задал соответствующий вопрос для своей системы Debian, и ответ был:
apt-get install gvfs-fuse
adduser <username> fuse
Затем перезагрузитесь. После монтирования GVFS (через Nautilus) каталог разделов будет находиться в одном из двух мест, в зависимости от того, какая версия Debian или Ubuntu у вас есть:
/run/user/<username>/gvfs
~/.gvfs
Когда я хочу получить доступ к файлам, совместно используемым с компьютера 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
На данный момент ...
#!/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