Dlaczego moje instalacje gvfs nie pojawiają się w ~ / .gvfs lub / run / user / <login> / gvfs?

35

Z tego, co przeczytałem, podczas montowania udziału sieciowego przez nautilus lub gvfs-mountpunkt montowania powinien być ~/.gvfs. Wydaje mi się, że tak nie jest: próbowałem zamontować zarówno udział FTP, jak i SMB zarówno nautilus, jak i gvfs-mountpod Ubuntu Maverick i Natty, aw żadnym z tych przypadków nie widziałem żadnego punktu montowania ~/.gvfs. Mogę uzyskać dostęp do udziałów znajdujących się w nautilusie, ale chcę mieć dostęp za pośrednictwem wiersza polecenia, dlatego potrzebuję punktu montowania w systemie plików.

Edycja: Debugowanie po odpowiedzi Jamesa Henstridge'a i komentarzu enzotib ujawniło, że na moim laptopie gvfs-fuse-daemonjest uruchomiony, w związku z czym pojawiają się wierzchowce gvfs ~/.gvfs, podczas gdy na 2 stacjach roboczych, na których ~/.gvfspozostał pusty, gvfs-fuse-daemonnie działał. Na wszystkich 3 maszynach istnieją inne procesy Gvfs trwania: gvfsd, gvfs-afc-volume-monitor...

Na laptopie mount | fgrep gvfsdaje

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

To rodzi pytania:

  • W jaki sposób montuje się udziały bez gvfs-fuse-daemonuruchamiania? Czy w takim przypadku nie jest utworzony punkt montowania i czy każdy dostęp do udziału jest wywołaniem biblioteki gvfs? Który demon jest odpowiedzialny? gvfsd?
  • Jaka jest rola gvfs-fuse-daemon? Czy tworzy tylko punkt mocowania bezpiecznika ~/.gvfs?

Aktualizacja: W wersji 12.10 i nowszych wierzchowce są poniżej /run/user/<login>/gvfs.

kynan
źródło
2
Czy możesz pokazać wynik mount | grep gvfs?
enzotib

Odpowiedzi:

12

~/.gvfsKatalog powinien być bezpiecznik zamontować obsługiwane przez gvfs-fuse-daemonproces. Jeśli katalog wydaje się być pusty, oznacza to, że gvfs-fuse-daemonnie uruchomił się poprawnie.

Możesz spróbować uruchomić go ręcznie za pomocą następującego polecenia:

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

Jeśli to się nie powiedzie, możesz spróbować sprawdzić, czy coś jeszcze tam jest zamontowane, a nawet najpierw usunąć i ponownie utworzyć katalog ~ / .gvfs. Jeśli nadal występują problemy, czy możesz zaktualizować pytanie i podać wydrukowane komunikaty o błędach gvfs-fuse-daemon?

** W dniu 14.04 demon zostaje wywołany gvfsd-fusei można go znaleźć w /usr/lib/gvfs/gvfsd-fuse.

James Henstridge
źródło
1
Niektóre dalsze badania ujawniły, że gvfsdpowinien rozpocząć się gvfs-fuse-daemonautomatycznie po gvfsdotrzymaniu pierwszego żądania dostępu do zdalnego systemu plików. W Ubuntu / Debian jest także błąd, który powoduje, że ~/.gvfskatalog jest nieczytelny, gdy gvfs-fuse-daemonulega awarii i wyświetla komunikat o błędzie. Punkt końcowy transportu nie jest połączony .
kynan
Czy kiedykolwiek zostało rozwiązane, dlaczego gvfsdnie uruchamia się gvfs-fuse-daemonautomatycznie? Pod RHEL wydaje się działać zgodnie z oczekiwaniami dla użytkowników root, ale nie dla nieuprzywilejowanych użytkowników.
Aaron Copley,
Naprawdę nie odpowiada na pytanie „Jaka jest rola gvfs-fuse-daemon” i „Jak montowane są udziały bez uruchomionego gvfs-fuse-daemon?”. gvfs-fuse-daemon zezwala na opcje takie jak allow_root, które są domyślnie ignorowane podczas używania gvfs-mount. Zatem udzielenie odpowiedzi na te pytania pomogłoby rozwiązać tutaj tę wieczną tajemnicę.
Nuzzolilo
Jest jeszcze jedno zastrzeżenie! gvfs-mountwymaga DBUS, a punkt montowania otrzymasz tylko wtedy, gdy gvfs-mountużyje SAMEJ SESJI DBUS as gvfs-fuse-daemon. Dlatego jeśli SSHingujesz na maszynie i rozpalasz dbus-daemonsesję, musisz również odrodzić osobę gvfs-fuse-daemondo sesji.
user1129682
Cóż, minęło 5 lat i nadal wydaje się to problemem
Stuart Axon
20

Rozwiązany problem (rodzaj).

W Ubuntu 12.10 punkt instalacji pojawia się w /run/user/(your username)/gvfs/sftp\:host\=\192.168.xxx.xxx.

Mam nadzieję, że to pomaga

Ivan Maglica
źródło
4

W Ubuntu 12.10 ścieżki zostały zmienione:

$ mount |grep gvfs
gvfsd-fuse on /run/user/pcm/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=pcm)
cmcginty
źródło
3

Na Debianie 6.0 wheezy, z lxde i nautilus. Uważam też, że katalog ~ / .gvfs jest pusty. Próbowałem biec

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

Ale powiedział mi: / dev / fuse: Odmowa zezwolenia.

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

Pomyślałem, że może dlatego, że nie jestem w grupie bezpieczników, a następnie dodałem moje konto użytkownika do tej grupy. Po ponownym uruchomieniu mount gvfs poprawnie pokazuje ~ / .gvfs.

z7z8th
źródło
3

Mam podobny problem z moim systemem 12.04 Precise.

Napędy, które wydają się zamontowane w Nautilusie, nie pojawiają się ~/.gvfs, szczególnie po cyklu zawieszenia / wznowienia. gvfs-fuse-daemondziała, ale zabicie go i ponowne uruchomienie nie rozwiązuje problemu.

Odkryłem, że ponowne uruchomienie Nautilusa po nautilus -qprzyczynach gvfs-fuse-daemoni Nautilusa do ponownej współpracy - punkty montowania pojawiają się ponownie.

Chris
źródło
3

W nowszych wersjach Ubuntu gvfs domyślnie instaluje się /run/user/$USER/gvfs/.

Możesz sprawdzić, gdzie jest domyślny punkt montowania, szukając linii bezpiecznika gvfsd użytkownika /etc/mtab.

David L.
źródło
2

Ja zapytałem powiązane pytanie do mojego systemu Debian, a odpowiedź była:

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

Następnie uruchom ponownie. Po zamontowaniu GVFS (przez Nautilus) katalog udostępniania będzie w jednym z dwóch miejsc, w zależności od posiadanej wersji Debiana lub Ubuntu:

/run/user/<username>/gvfs
~/.gvfs
Mike T.
źródło
Jestem pewien, że nie musisz się ponownie uruchamiać. To systemctl --user restart gvfs-daemonzałatwiło sprawę.
Torkel Bjørnson-Langen
0

Kiedy chcę uzyskać dostęp do plików udostępnionych bezpośrednio z komputera z systemem Windows (nie przeglądając Nautilus), montuję udział w folderze w moim katalogu domowym.

Na przykład. Tam, jeśli 192.168.16.2w domenie jest komputer z systemem Windows z adresem IP, mydomainktóry ma folder udostępniony jako sharedi mam katalog w katalogu domowym o nazwie mnt, mogę zamontować udział mnti uzyskać do niego dostęp tak, jakby był w moim katalogu domowym za pomocą:

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

gdzie poświadczenia zawierają:

username=stacey
password=mypassword
domain=mydomain

Teraz mogę używać ls /home/stacey/mntdo listy plików i katalogów w katalogu udostępnionego sharedna 192.168.16.2i uzyskać dostęp do plików w ten punkt montowania, jak bym pliku na moim lokalnym dysku twardym.

Więcej informacji na temat montowania udziałów SMB można uzyskać za pomocą:

man mount.cifs
Stacey Richards
źródło
Nie to, o co poprosił PO.
enzotib
2
Nie, ale kynan powiedział „ale chcę mieć dostęp za pośrednictwem wiersza polecenia, dlatego potrzebuję punktu montowania w systemie plików”, więc po prostu próbuję pomóc.
Stacey Richards
Dzięki. Powinienem wspomnieć, że rozważałem to rozwiązanie, ale imho ma 2 główne wady, które sprawiają, że jest to niemożliwe: 1) plik poświadczeń musi zawierać hasło w postaci zwykłego tekstu, co jest niedopuszczalne na wspólnej maszynie, 2) wymaga uprawnień roota i potrzebuję rozwiązania, które działa również na komputerach, na których nie mam sudo
kynan
0

Na razie...

#!/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
Daniel Del Pino
źródło
3
Przyjemne byłoby krótkie wyjaśnienie, co zrobi ten skrypt. Kiedy powinno się uruchomić zadanie CRON?
mook765,