Montaje Samba con solicitud de contraseña como usuario no root

17

Quiero montar un recurso compartido SMB protegido por contraseña (servido por una máquina Windows). El recurso compartido está protegido por un nombre de usuario y una contraseña, y es posible que no escriba la contraseña en un archivo, quiero que se me solicite la contraseña en el momento del montaje.

Necesito una solución que funcione incluso cuando el usuario en la máquina cliente no tiene privilegios administrativos, por lo que cualquier método que se use para montar el recurso compartido no debe permitirle obtener permisos de root. La instalación inicial se puede hacer como root. Los usuarios deben poder especificar nombres de servidor arbitrarios. Mi necesidad inmediata es con Ubuntu 12.04, pero cuanto más amplia sea una solución aplicable, mejor.

El cliente no tiene cabeza, así que estoy buscando una herramienta de línea de comandos.

Lo que probé:

  • mount.cifs: si bien se puede hacer root setuid, sus autores no lo consideran seguro . Ejecutarlo sudotiene el mismo problema.
  • smbnetfs, fusesmb: No pude convencer a ninguno de ellos para que me solicite una contraseña.
  • Nautilus y gvfs: gvfs-mount smb://servername/sharenamefalla con Error mounting location: volume doesn't implement mount.

¿Cómo puedo montar un recurso compartido Samba desde la línea de comandos, como usuario no root, con una solicitud de contraseña?

Gilles 'SO- deja de ser malvado'
fuente
1
Uno de los desarrolladores principales parece haber aflojado su postura sobre los problemas de los setuid. Extracto: "El código se ha rediseñado sustancialmente y debería ser mucho más seguro de lo que era antes. Ahora privilegia la separación de modo que la mayor parte del proceso de montaje se realice como un usuario sin privilegios y, si está vinculado contra las bibliotecas correctas, con capacidades reducidas al mínimo. En este punto, diría que es lo suficientemente seguro como para que ya no necesitemos restringir que se instale setuid root ". fuente: lists.samba.org/archive/samba/2010-April/154935.html Pensé que debería señalarlo.
Tim

Respuestas:

20

"Ubicación de montaje de error: el volumen no implementa el montaje" aparentemente se traduce como "Necesito D-Bus pero no está disponible". (Gracias al colega gurú de Venturax por esta información). Dentro de una sesión SSH, puedo usar gvfs-mountsiempre que dbus-daemonse inicie primero y DBUS_SESSION_BUS_ADDRESSse establezca la variable de entorno .

export $(dbus-launch)
gvfs-mount smb://workgroupname\;username@hostname/sharename
# Type password
ls ~/.gvfs/'sharename on hostname'

gvfs-mounty otras utilidades de GVFS deben hablar con la misma sesión de D-Bus. Por lo tanto, si usa varias sesiones SSH o utiliza montajes en las sesiones de inicio de sesión, debe:

  • inicie D-Bus la primera vez que sea necesario, a más tardar;
  • tenga cuidado de no dejar que D-Bus termine con la sesión, siempre que haya sistemas de archivos GVFS montados;
  • reutilice la sesión existente de D-Bus en el momento de inicio de sesión si hay una.

Consulte Reutilizar sesiones de D-Bus en sesiones de inicio de sesión para eso.

Gilles 'SO- deja de ser malvado'
fuente
1
Esto también se aplica a gio mountlas versiones recientes de ubuntu.
jnas
1

SMBNetFS usa Gnome-keyring por defecto. Cualquier contraseña ingresada y guardada en Gnome-keyring mientras navega por los recursos compartidos de Samba en Nautilus debe usarse automáticamente. Entonces, si está bien almacenar contraseñas en Gnome-keyring, SMBNetFS es más conveniente. Monta automáticamente todo el vecindario de la red. Esta información proviene del archivo de configuración SMBNetFS de muestra, pero no la he probado ya que no uso Gnome.

En cuanto al uso del anillo de claves Gnome sin X11, ver uso de gnome-keyring-daemon sin X .

Sameer
fuente