Montar comparticiones remotas usando smbfs y cifs
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
Contenido
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
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=~/.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.