Después de bastante tiempo sin publicar nada (lo siento por mis posibles seguidores pero ando muy muy liado con varios proyectos :) ) voy a intentar explicar como compartir ficheros entre varias maquinas usando el protocolo SMB/CIFS
SMB/CIFS es el protocolo que usan todas las versiones de Windows para compartir archivos e impresoras en una red local.
Si en tu red no hay máquinas Windows puedes emplear el protocolo NFS en lugar de SMB.
Samba es una implementación libre del protocolo SMB/CIFS para sistemas Unix desarrollado originalmente por Andrew Tridgel
El objetivo de este tutorial es instalar samba en una máquina con linux y configurarlo para compartir: un directorio público (permisos de solo lectura y sin necesidad de password para entrar), tu directorio home (permisos totales pero solo para un usuario concreto) y un directorio con datos y música (permisos totales pero no público).
Paso 1. Instalar samba
$ sudo apt-get install samba samba-common smbclient smbfs
Fácilmente !!
Paso 2. Adiós configuración por defecto
Para configurar samba hay que editar el fichero /etc/samba/smb.conf
Por defecto al instalar se crea este fichero con muchas directivas y configuraciones ya establecidas.
Sin embargo esto no es nada útil ya que no se ajusta a nuestros requerimientos y el fichero es muy difÃcil de entender (por los millones de comentarios ).
Mi consejo, borrar el contenido de este fichero y comenzar de nuevo, como ahora se verá es muy fácil configurar samba.
$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bk
$ sudo rm /etc/samba/smb.conf
$ sudo gedit /etc/samba/smb.conf
Paso 3. La sección [global]
Bueno ahora nos enfrentamos a un archivo vacÃo, ¿da miedo eh?.
La configuración de samba se realiza mediante secciones en este archivo, hay una sección global que controla los parámetros globales del servidor y una sección por cada recurso que queramos compartir.
La sección encargada de configurar el servidor se denomina [global] y será la que pongamos al principio de nuestro fichero smb.conf
Su contenido es el siguiente:
[global]
workgroup = CASA
netbios name = HUBBERT
server string = Servidor Samba (Guadalinex)
security = user
guest account = nobody
load printers = no
map to guest = Bad password
log file = /var/log/samba/smb.txt
encrypt passwords = true
Vamos a ver que hace cada una de estas directivas:
- workgroup = CASA Asigna el grupo de trabajo, es muy importante que todos los equipos de la red tengan el mismo grupo de trabajo.
- netbios name = HUBBERT Nombre de equipo para el protocolo Netbios, este hace que se pueda acceder a la máquina poniendo \\HUBBERT en lugar de la dirección IP.
- server string = Servidor Samba (Guadalinex) Cadena de identificación del PC, es solo informativa, puedes poner lo que quieras aquÃ.
- security = user Para acceder a los recursos es necesario un nombre de usuario y contraseña válidos de Samba, si no deseamos proteger con contraseña los recursos podemos usar el valor share en lugar de user, no lo recomiendo por las implicaciones de seguridad que conlleva.
- guest account = nobody Cuenta del sistema que se usará como cuenta de invitado.
- load printers = no No queremos configurar ninguna impresora para compartir.
- map to guest = Bad password Directiva de mapeo a la cuenta de invitado, establecemos que si no introduce password o es incorrecto solo se deje acceder a lo recursos públicos.
- log file = /var/log/samba/smb.txt Ruta al fichero donde se almacenará el log.
- encrypt passwords = true Por defecto los pasword viajan por la red sin cifrar con esta directiva evitamos esto, no es compatible con Windows prehistóricos como el 95 por ejemplo.
Una vez vista la configuración global del servidor vamos a ver como comparte un directorio público.
Paso 4. Compartiendo un directorio público.
Vamos a compartir un directorio de forma que todos los archivos que pongamos ahà será libremente accedidos por cualquiera (sin tener que introducir contraseña). Para ello añadimos la siguiente sección al fichero de configuración:
[public]
path = /home/compartido
comment = Directorio publico
guest ok = yes
writeable = no
public = yes
browseable = yes
available = yes
printable = no
Vamos a ver lo que hace ahora cada directiva:
- path = /home/compartido Ruta al directorio a compartir, directorio que debe existir obviamente.
- comment = Directorio publico Comentario informativo
- guest ok = yes Permitimos el acceso de la cuenta invitad, sin contraseña.
- writeable = no Denegamos la escritura en el directorio, será de solo lectura.
- public = yes Establecemos el directorio como público.
- browseable = yes El recurso aparecerá cuando un cliente explore nuestro equipo (mediante Mis sitios de red por ejemplo). Si la establecemos como “no” no aparecerá el recurso en el listado pero seguirá siendo accesible mediante su nombre (\\MAQUINA\public por ejemplo).
- available = yes Recurso activado, disponible.
- printable = no No es una impresora, no puedo imprimir con ello.
Paso 5. Compartiendo tu directorio home.
Ahora queremos compartir nuestro directorio home pero solo tendrá acceso a el un usuario. Añadimos la siguiente sección a nuestro fichero de configuración:
[migue]
path = /home/migue
comment = Directorio de Migue en Guadalinex
public = no
writable = yes
printable = no
guest ok = no
browseable = yes
valid users = migue
La única directiva que añadimos nueva es valid users = migue donde establecemos que usuario tendra acceso al recurso.
Paso 6. Compartiendo un disco duro entero.
Ahora vamos a compartir un disco duro completo, obviamente es un disco duro que contiene música y datos bajados de internet, no se me ocurrirÃa compartir completamente el disco donde está instalado Windows o Linux y menos con permisos de escritura ;)
Añadimos la siguiente sección al archivo de configuración:
[datos]
path = /media/hdb1
comment = Directorio de musica y descargas
public = no
writable = yes
printable = no
guest ok = no
browseable = yes
No hay nada nuevo asà que pasamos al siguiente paso.
Paso 7. Añadiendo usuarios a Samba
Una vez que tenemos lista la configuración de nuestro Samba hay que añadir usuarios para que accedan a los recursos, ya que hemos establecido el modo de seguridad como “user”.
Hay que distinguir entre usuarios del sistema y usuarios Samba, para acceder a recursos Samba hay que ser usuario de Samba y para ser usuario de Samba hay que ser usuario del sistema antes.
Vamos a crear un usuario llamado samba que será el que se use para acceder a los recursos de red.
Primero tenemos que crearnos un usuario en linux llamado samba, para mayor seguridad le desactivamos la shell a este usuario.
$ sudo useradd samba -s /bin/false -p un_pass
Ahora añadimos el usuario “samba” como usuario de Samba
$ sudo smbpasswd -a samba
Nos pedirá que pongamos una contraseña, esta será la que se use para acceder a los recursos desde la red, no tiene porque coincidir con la del usuario linux, es más se recomienda que no coincida.
Ahora añadimos al usuario migue en Samba para que pueda acceder a su recurso home.
$ sudo smbpasswd -a migue
Paso 8. Reiniciando Samba y probando.
Ya está todo configurado, podemos darle caña a nuestro servidor Samba, el primer paso es reiniciar el demonio samba para que use la nueva configuración.
$ sudo /etc/init.d/samba restart
Ahora probamos, podemos hacerlo desde nuestro PC usando la utilidad smbclient.
$ smbclient -L localhost -U samba
Introducimos la contraseña del usuario samba y debe salir un listado con los recursos que compartes actualmente.
Ahora solo te queda probarlo desde otro equipo de la red para comprobar que todo funciona correctamente.
La utilidad smbstatus te permite conocer que máquinas están conectada a tu servidor y que ficheros hay abiertos.
Hasta aquà el tutorial, un poco largo pero espero que os sea útil ;)



4 users commented in " Tutorial. Iniciación a la compartición de archivos con Samba "
Follow-up comment rss or Leave a TrackbackCómo ganan los tutos cuando añades un “¡fácilmente!” xD
Lo he mirado, lo he leido, creo que lo entiendo… pero creo que con el sistema actual me conformo (las maquinas con win accesibles desde la red y solo una carpeta… no necesito más ;-) )
Esta bueno me ayudo mucho con la configuracion de mi red samba en centos, por que estaba consultando otro y si me sirvio pero con este complemente.
hola:
tengo un problema tengo el centos 5 y ya tengo instalado el samba, el problema que no puedo hacer la conexion con otra maquina desde windows, me dice que esta mal escrito el nombre…, si algien me ayuda lo agradeceria mucho
Responder