Instalar y configurar servidor Samba en Ubuntu Linux

24 septiembre, 2009 por Herman Barrantes Dejar una respuesta »

Según la definición que podemos encontrar en Wikipedia Samba es:

Samba es una implementación libre del protocolo de archivos compartidos de Microsoft Windows (antiguamente llamado SMB, renombrado recientemente a CIFS) para sistemas de tipo UNIX. De esta forma, es posible que ordenadores con GNU/Linux, Mac OS X o Unix en general se vean como servidores o actúen como clientes en redes de Windows. Samba también permite validar usuarios haciendo de Controlador Principal de Dominio (PDC), como miembro de dominio e incluso como un dominio Active Directory para redes basadas en Windows; aparte de ser capaz de servir colas de impresión, directorios compartidos y autentificar con su propio archivo de usuarios.

Instalar Samba

Primero que nada instalamos samba ejecutando en un terminal:

$ sudo aptitude install samba samba-client smbfs smbclient

La configuración de Samba se logra editando un solo archivo, accesible en /etc/samba/smb.conf

Cada vez que se cambie el archivo de configuración se debe de recargar con el comando:
$ sudo /etc/init.d/samba reload

Configurar Samba

Modificar el grupo de trabajo

Abrimos el archivo de configuración con:

$ sudo gedit /etc/samba/smb.conf

Y buscamos la línea que contenga “workgroup” y ponemos el nombre del grupo de trabajo que queremos, ejemplo: “workgroup = gruposamba

Para este caso en particular use el programa gedit como editor de texto ya que yo uso Ubuntu Desktop, en otras distribuciones se podría usar nano, vi, kedit o cualquier otro editor de texto plano

Agregar usuarios a samba

En el siguiente ejemplo, vamos agregar un usuario de nombre “jesus” al grupo de usuarios “users“.
Puedes agregar tantos usuarios necesites utilizando el mismo procedimiento.

$ sudo useradd jesus -m -G users

Activa una contraseña para el usuario de jesus en la base de datos de los usuarios de Linux.
Si el usuario jesus no va tener permiso para firmarse en sistema de Linux, bríncate este paso:

$ sudo passwd jesus

Ahora agregamos el usuario de linux a la base de datos de Samba

$ sudo smbpasswd -a jesus

Listo ;-) .

Agregar una carpeta para compartir

Primero debemos crear una carpeta con permisos, por ejemplo:

$ sudo mkdir /home/public
$ sudo chmod 555 /home/public
Nota: el permiso 555 hace la carpeta solo lectura, si desea que se puedan agregar/modificar archivos o directorios en la carpeta esta debe tener permisos 755
Para más información sobre permisos de archivos y directorios ver la entrada: Permisos en Linux con chmod

Luego abrimos el archivo /etc/samba/smb.conf para modificarlo:

$ sudo gedit /etc/samba/smb.conf

Y le agregamos, al final, algo como esto:

[public]
comment = Cosas publicas
path = /home/public
public = yes
writable = no

El anterior ejemplo es la configuración mas simple, con samba se puede hacer varias configuraciones, pero en general todas debe de seguir el siguiente estándar:

[Lo_que_sea]
path = /cualquier/ruta/que/desee/compartir
comment = Comentario que se le ocurra

El volumen puede utilizar cualquiera de las siguientes opciones:

Opción Descripción
guest ok Define si ser permitirá el acceso como usuario invitado.
El valor puede ser Yes o No.
public Es un equivalente del parámetro guest ok, es decir define si ser permitirá el acceso como usuario invitado.
El valor puede ser Yes o No.
browseable Define si se permitirá mostrar este recurso en las listas de recursos compartidos.
El valor puede ser Yes o No.
writable Define si ser permitirá la escritura.
Es el parámetro contrario de read only.
El valor puede ser Yes o No. Ejemplos: “writable = Yes” es lo mismo que “read only = No”. Obviamente “writable = No” es lo mismo que “read only = Yes”
valid users Define que usuarios o grupos pueden acceder al recurso compartido.
Los valores pueden ser nombres de usuarios separados por comas o bien nombres de grupo antecedidos por una @.
Ejemplo: fulano, mengano, @administradores
write list Define que usuarios o grupos pueden acceder con permiso de escritura.
Los valores pueden ser nombres de usuarios separados por comas o bien nombres de grupo antecedidos por una @.
Ejemplo: fulano, mengano, @administradores
admin users Define que usuarios o grupos pueden acceder con permisos administrativos para el recurso.
Es decir, podrán acceder hacia el recurso realizando todas las operaciones como super-usuarios.
Los valores pueden ser nombres de usuarios separados por comas o bien nombres de grupo antecedidos por una @.
Ejemplo: fulano, mengano, @administradores
directory mask Es lo mismo que directory mode.
Define que permiso en el sistema tendrán los subdirectorios creados dentro del recurso.
Ejemplos: 1777
create mask Define que permiso en el sistema tendrán los nuevos ficheros creados dentro del recurso.
Ejemplo: 0644

En el siguiente ejemplo se compartirá a través de Samba el recurso denominado ftp, el cual está localizado en el directorio /home/ftp/pub del disco duro. Se permitirá el acceso a cualquiera pero será un recurso de solo lectura salvo para los usuarios administrador y fulano. Todo directorio nuevo que sea creado en su interior tendrá permiso 755 y todo fichero que sea puesto en su interior tendrá permiso 644.

[ftp]
comment = Directorio del servidor FTP
path = /home/ftp/pub
guest ok = Yes
read only = Yes
write list = fulano, administrador
directory mask = 0755
create mask = 0644

Nota: Cada vez que se haga algún cambio al archivo de configuración, samba debe de ser recargado

Iniciar, detener, reiniciar, recargar servidor samba

Iniciar

$ sudo /etc/init.d/samba start

Detener

$ sudo /etc/init.d/samba stop

Reiniciar

$ sudo /etc/init.d/samba restart

Recargar

$ sudo /etc/init.d/samba reload

Comprobar archivo de configuración

Para probar la configuración, existe un programa llamado TESTPARM que lee el archivo de configuración y reporta cualquier error de sintaxis. Cualquier parámetro de configuración aún no establecido será ajustado a su valor por defecto. Recuerde que su archivo de configuración puede estar sintácticamente correcto pero no apropiado para su uso, por ejemplo, si no creamos la carpeta “publico” en /home/ testparm EN NINGÚN CASO devolverá código de error.
Para poder usar este programa solo se debe de ejecutar en un terminal el comando testparm.

Usar Samba

Desde Linux

smb://ip_o_nombre_del_equipo
o
smbclient //ip_o_nombre_del_equipo

Desde Windows

\ip_o_nombre_del_equipo

Puertos que usa samba

Si no logra conectar desde un equipo Windows lo más probable es que el firewall tenga los puertos bloqueados; los puertos que samba utiliza son:

  • Puerto 135/TCP – usado por el servicio smbd
  • Puerto 137/UDP – usado por el servicio nmbd
  • Puerto 138/UDP – usado por el servicio nmbd
  • Puerto 139/TCP – usado por el servicio smbd
  • Puerto 445/TCP – usado por el servicio smbd

Herramienta gráfica para samba

Instalar:

$ sudo apt-get install system-config-samba

Publicidad

Deja un comentario