Montar comparticiones remotas usando smbfs y cifs

De Guía Ubuntu
Revisión a fecha de 23:02 4 dic 2011; Javiribera (Discusión | contribuciones)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

Este documento explica cómo montar comparticiones smbfs de forma permanente, por ejemplo comparticiones Windows o comparticiones de servidores samba sobre Linux/Unix.

Traducción de: https://wiki.ubuntu.com/MountWindowsSharesPermanently

Fusionar.png
Se ha sugerido que este artículo o sección sea fusionado con Samba. (Se puede discutir esto en Discusión).


Instalación del sistema de ficheros Samba

$ sudo aptitude install smbfs

Montar carpetas de red desprotegidas (accesibles como invitado)

Asumiendo que:

  • La conexión de red está configurada correctamente
  • El nombre de la máquina Windows es servername, y que puede ser una dirección IP o un nombre asignado
  • El nombre de la carpeta compartida es sharename.
  • La carpeta compartida en la máquina Windows será montada en la carpeta local mountname.

Primero, crear la carpeta donde montar la compartición. Será necesaria una carpeta diferente para cada sistema de ficheros que se monte:

$ sudo mkdir /media/mountname

Editar el fichero /etc/fstab (como root) para añadir la siguiente línea

//servername/sharename  /media/mountname  smbfs  guest,uid=1000,iocharset=utf8,codepage=unicode,unicode  0  0

Donde:

  • guest indica que no es necesario usuario y contraseña para acceder a la carpeta compartida
  • uid=1000 monta la compartición perteneciendo al usuario cuyo uid se especifica
  • iocharset=utf8,codepage=unicode,unicode permite acceder a ficheros con nombres con caracteres de idiomas distintos al Inglés. Algunas instalaciones de Windows están configuradas para compartir utilizando ISO8895-15. En éstas, el argumento correcto sería codepage=cp850.

Tras las modificaciones descritas de /etc/fstab

$ sudo mount -a

Con lo que se volverán a montar todas las entradas de /etc/fstab

Montando carpetas de red protegidas por contraseña

Asumiendo todo lo dicho, y lo siguiente:

  • El usuario de la carpeta compartida en la máquina Windows es myusername.
  • La contraseña de la carpeta compartida en la máquina Windows es mypassword.

Puede montarse la carpeta incluyendo en /etc/fstab los parámetros username y password:

//servername/sharename  /media/mountname  smbfs  username=myusername,password=mypassword  0  0

Pero, dado que /etc/fstab es legible por todos los usuarios, es evidente que no conviene tener escritas las contraseñas Windows en claro. La forma de evitarlo es utilizar un fichero de credenciales, del que controlaremos los permisos y que contienen únicamente el usuario y su contraseña:

$ sudo gedit ~/.smbcredentials

Añadir las siguientes líneas:

username=myusername
password=mypassword

y salvar el fichero.

Ahora se modifican los permisos del fichero para que sólo el usuario pueda leerlo y escribir en él.

$ sudo chmod 600 ~/.smbcredentials

Y ahora se añade la siguiente línea en /etc/fstab (en este caso, permitiendo lectura y escritura a todo usuario):

//servername/sharename  /media/mountname  smbfs  credentials=~/.smbcredentials,dmask=777,fmask=777  0  0

o bien, para dar sólo permisos de lectura:

//servername/sharename  /media/mountname  smbfs  credentials=~/.smbcredentials  0  0

Importante: Desde Intrepid, se debe reemplazar dmask por dir_mode y fmask por file_mode:

//servername/sharename  /media/mountname  smbfs  credentials=~/.smbcredentials,dir_mode=777,file_mode=777  0  0

En algunos sistemas, el montaje automático de smbfs no funcionará correctamente. Para evitarlo, puede añadirse el parámetro "noauto" a fstab y después montar la compartición al iniciar la sesión

/etc/fstab:

//servername/sharename  /media/mountname  smbfs  noauto,credentials=~/.smbpasswd  0  0

después, editar /etc/rc.local para montar la carpeta smbfs cuando se inicia la sesión (hay que asegurarse de los usuarios tienen suficientes permisos para ejecutar /etc/rc.local):

#!/bin/sh -e
mount /media/mountname
exit 0

Este artículo es, por ahora, sólo un esbozo.
Ampliándolo ayudarás a mejorar Guía Ubuntu.


Permisos especiales

Si se necesitan permisos especiales, deben añadirse los parámetros uid' o gid, poniendo el nombre o el id (del usuario, uid; o del grupo, gid):

//servername/sharename  /media/mountname  smbfs   uid=eguser,credentials=/home/tu_usuario/.smbcredentials,dmask=777,fmask=777   0       0

Con esta línea /media/sharename pertenecerá al usuario eguser. Mediante dmask y fmask se determina la máscara a utilizar para los permisos (en el ejemplo, se permite lectura, escritura y ejecución tanto de directorios como de ficheros).

Problemas conocidos

Las carpetas compartidas sin protección por contraseña no se montan automáticamente

Al iniciar, puede que no se monte automáticamente la compartición, pero después ejecutando "sudo mount -a" sí funciona correctamente. Se soluciona con la siguiente línea:

//servername/sharename  /media/mountname  smbfs  username=guest,password=,uid=1000,iocharset=utf8,codepage=unicode,unicode  0  0

smbfs: smbmnt must be installed suid root

$ sudo chmod u+s `which smbmnt`
$ sudo chmod u+s `which smbumount`

Bugs y otras notas

It appears to be true. I just fought through several strange problems after following this guide, only to have everything solved by using CIFS instead.