Monte o FTP usando o GVFS na linha de comando

3

Eu estou no Debian Jessie sem ambiente de desktop. Eu tento montar um FTP por linha de comando usando gvfs-mount.

Reuni informações na web e entendi que o gvfs comunica com o dbus.

Então meu primeiro passo foi instalar os pacotes necessários para dbus e gvfs :

apt-get install dbus-x11 gvfs-bin gvfs-fuse

Então eu reinicio, porque o dbus instalou seu próprio serviço.

Depois disso, estou fazendo login como www-data

sudo -Hu www-data -s /bin/bash

( -s /bin/bash é porque esse usuário não tem nada)

A partir daqui, tenho que lançar um dbus-daemon para meu usuário e exportar o DBUS_SESSION_BUS_ADDRESS resultante para que o gvfs se comunique com esse daemon. Então eu faço:

dbus-launch --sh-syntax > "$HOME/.dbus_settings"

.dbus_settings contém algo como:

cat .dbus_settings 
DBUS_SESSION_BUS_ADDRESS='unix:abstract=/tmp/dbus-XwbyV2BmA5,guid=6c111d728c263543b61e6293570e1f22';
export DBUS_SESSION_BUS_ADDRESS;
DBUS_SESSION_BUS_PID=952;

Minha variável de ambiente DBUS_SESSION_BUS_ADDRESS não está definida neste momento, então eu corro:

export DBUS_SESSION_BUS_ADDRESS='unix:abstract=/tmp/dbus-XwbyV2BmA5,guid=6c111d728c263543b61e6293570e1f22'

Para lidar com futuras montagens gvfs, criei uma pasta .gvfs no meu usuário $HOME (para www-data é /var/www )

Agora, eu acho (mas não tenho certeza) que eu preparei para usar o gvfs. então eu inicio gvfsd-fuse assim:

/usr/lib/gvfs/gvfsd-fuse $HOME/.gvfs -o big_writes

Isso parece funcionar. A pasta $ HOME / .gvfs parece estar montada (mas ainda não há nada nela).

O último comando é a montagem efetiva do FTP:

gvfs-mount ftp://myftpuser@myftpserver < file_containing_ftp_password

Mas sempre recebo este erro:

Error mounting location: Location is not mountable

Estas etapas funcionam no meu desktop Linux Mint 17.3 amd64. Mas eu não posso fazê-lo funcionar em um servidor Debian Jessie (sem desktop e x11).

Qualquer ajuda é apreciada.

    
por berturion 13.04.2016 / 13:47

1 resposta

3

Eu encontrei o problema. Um pacote estava faltando gvfs-backends e alguns comandos eram inúteis.

Para retomar, os passos são:

  1. Instalar os pacotes necessários:

    apt-get instala o dbus-x11 gvfs-bin gvfs-fuse gvfs-backends

  2. Crie a pasta .gvfs se ela não existir

    mkdir $ HOME / .gvfs

  3. Inicie uma sessão dbus e armazene DBUS_SESSION_BUS_ADDRESS para poder reutilizá-la

    dbus-launch --sh-syntax > "$ HOME / .dbus_settings"

  4. export DBUS_SESSION_BUS_ADDRESS usando source , por exemplo

    source "$ HOME / .dbus_settings"

  5. Basta montá-lo com gvfs-mount

    gvfs-mount ftp: // myftpuser @ myftpserver

O Shell solicitará sua senha. Você também pode criar um arquivo contendo sua senha e fornecê-lo ao gvfs-mount para que o comando seja:

gvfs-mount ftp://myftpuser@myftpserver < file_containing_my_ftp_password
  1. Acesse o seu FTP montado neste local:

    cd $ HOME / .gvfs / ftp: host \ = servidor_de_hospito \, usuário \ = myftpuser /

Feito!

    
por 13.04.2016 / 20:59

Tags