Linux.Samba.

Ismael Royano Gómez
Enredando con Linux.
4 min readMay 7, 2016

¿Que es Samba?.

En toda red o grupo de trabajo que se precie se debe tener siempre algo que compartir como impresoras, discos duros, carpetas..etc, para facilitar el trabajo a los usuarios.

Por falta de compatibilidad entre plataformas, Windows/Linux no se llevan nada bien en este tema, son totalmente independientes y muy distintos en todos sus procedimientos y para compatir recursos no hablan el mismo idioma. Para este tema se creó el proyecto Samba.

Samba es una implementación libre del protocolo de archivos compartidos de Microsoft Windows. Gracias a este proyecto computadoras con plataformas Gnu/Linux, Mac OSX o Unix se pueden usar como servidores o que actúen como clientes en redes de Microsoft Windows y así poder compartir recursos en red.

Lo primero que vamos a hacer es la instalación;

dnf install samba

En casi todas las distribuciones que existen el archivo de configuración de samba se guarda en /etc/samba/smb.conf. Vamos a realizar una configuración sencilla y básica, de manera que vamos a compartir sólamente una carpetita y una impresora a la que podrán acceder todas las personas de nuestro grupo de trabajo:

  • Asignamos un grupo de trabajo, que evidentemente debe ser el mismo en Windows y Linux:
workgroup= mi grupo de trabajo
  • Un poco de seguridad nunca viene mal, existen parámetros en los que podemos indicar a samba que rango de ordenadores de nuestra red local, pueden o no acceder a nuestros recursos compartidos:
host allow = 192.168.1. 127

En este caso concreto solo dejamos acceder a ips comprendidas entre 192.168.1.1 a 192.168.1.127. Si sólo queremos dejar pasar uno simplemente ponemos la ip exacta de ese ordenador.

  • Existen otros parámetros en los que podemos indicar, no solo la ip, sino el interfaz con el que intentan acceder a samba:
interfaces= lo 192.168.1.10/24 

La expresión “lo” indica a samba cualquier interfaz local.

  • Compartiendo impresoras. En este apartado sólo basta con indicar que la impresora es pública para que puedan acceder a ella.
[printers]
comment = El comentario que guste.
path = /var/spool/samba
printable = Yes
browseable = No
writable = no
printable = yes
public = Yes

Ahora toca compartir recursos. En este ejemplo lo que voy a hacer es compartir una carpeta pública en la que podrá acceder todo el mundo. Samba por defecto comparte el directorio personal, a mi eso no me gusta, yo prefiero utililizar una carpeta pública para que todo el mundo acceda a ella para trabajar.

Lo primero que vamos a hacer es evitar compartir el directorio personal. Buscamos en el smb.conf una zona donde pone [homes] y ponemos delante de cada linea un punto y coma para desactivarlo:

;[homes]
; comment = Home Directories
; browseable = no
; writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S

Dentro del smb.conf, existe una parte que tiene como nombre [public]. Esto es un ejemplo de configuración, yo lo utilizo modificando ciertas cosas para adaptarlo a mis necesidades, así como quitar el punto y coma de las líneas que quiero activar:

[public]
comment = Public
path = la carpeta que queremos compartir
public = yes
writable = yes

Vamos a ver una pequeña lista de propiedades que podemos poner en un recurso compartido:

guest ok= yes/no #Especifica que se permite el acceso como usuario invitado.public= yes/no #Es similar al guest ok, define el acceso como usuario invitado.browseable= yes/no #Define si es visible el recurso compartido cuando navegamos por el explorador.read only= yes/no #Define si un recurso es de solo lectura.writable = yes/no #Define si un recurso tiene permisos de escritura.valid users #Indica que usuarios o grupos pueden acceder al recurso. Si es mas de un usuario se debe separar por comas y si se refiere a un grupo se debe poner @ delante. Ejemplo: valid users: ismael, lourdes, @administradores.write list #Indica que usuarios o grupos pueden acceder al recurso con permisos de escritura. Sigue la misma norma que valid users.

Modo de Seguridad.

En samba existe un apartado en el que se controla la forma de acceso, por defecto se usa el modo “user”, pero existen algunos más como es “domain, server, share…etc. Nosotros vamos a utilizar el modo de seguridad “user”.

El requisito que debe de tener el modo de seguridad “user” es que debe existir el usuario en el servidor samba y en Linux, para poder acceder a los recursos, es decir, debemos sincronizar la cuentas que existen en Linux y Samba, de forma que si el usuario se llama “paco” con la contraseña “123456789b”, debe existir también en el servidor Samba. Para hacer esto usamos el comando pdbedit:

pdbedit -a -u paco #Seguidamente nos pedirá la contraseña de acceso, que deberá ser la misma que existe en las cuentas de usuario de Linux.

Una vez agregado el usuario a Samba, cuando alguien quiera acceder a estos recursos compartidos, deberá introducir ese usuario y contraseña de acceso.

Pero cabe la posibilidad de que pensemos….¡no me gusta la idea de que mi novia sepa mi usuario y contraseña!, ¿no puedo hacerlo de otra forma?. Podemos crear un usuario en el sistema sólo y exclusivamente para usar en el servidor Samba, de forma que nadie podrá saber tu usuario ni contraseña que usas normalmente:

useradd -s /sbin/nologin usuario-samba #Creamos el usuario en Linux.passwd usuario-samba #Añadimos una contraseña de acceso. Esto puede ser opcional, no tenemos porqué darle una contraseña si no queremos, pero un poco de seguridad nunca viene mal.pdbedit -a -u usuario-samba #Creamos el usuario en el servidor Samba y nos pedirá la contraseña de acceso, que deberá ser la misma que el usuario de Linux.

Ahora toca iniciar el servicio y reiniciar y ya tenemos un grupo de trabajo con recursos para compartir:

systemctl enable smbd
systemctl enable nmbd

Continúa por Instalar programas.

--

--

Ismael Royano Gómez
Enredando con Linux.

Técnico Informático curioso, lector activo de las nuevas tecnologías, amante de las series de televisión y usuario del respetable mundo del enredo.