Un título bien largo, pero es lo que vamos a hacer
Problema
Tengo una unidad de red llamada share en mi servidor de datos de red llamado host que quiero montar usando Samba y GVFS automáticamente, pero al ejecutar:
$ gvfs-mount smb://host/share
Siempre me pide lo siguiente:
User [tu_usuario]: Domain [WORKGROUP]: Password:
Y no tengo forma de automatizar eso.
Solución
Expect es un intérprete de órdenes (estilo bash) diseñado para emular a un usuario metiendo datos manualmente. Lo usaremos para montar las unidades automáticamente:
#!/usr/bin/env bash
# Montar unidades emulando a un usuario que mete datos
function mount_share {
expect <<END
spawn gvfs-mount $1
set timeout -1
expect User
expect :
send $2\r
expect Domain
expect :
send $3\r
expect Password:
send $4\r
wait
END
}
# Montar nuestra unidad de red
mount_share smb://host/share usuario dominio contraseña