Servidor Samba en Linux

Un Servidor Samba es un conjunto de aplicaciones Linux, basadas en el protocolo SMB, que permiten compartir archivos en red.

 
Configurar Servidor Samba
 
Un servidor Samba nos permite crear un Servidor de Archivos y Recursos compartidos, y administrarlos otorgando los permisos deseados a los usuarios y grupos que creemos.
 
De esta forma podremos compartir archivos y directorios desde equipos Linux a equipos Windows (y también con equipos Linux, claro). También podremos compartir impresoras.
 

 

En este artículo veremos:

 

 

  • 4. Creación de Recursos compartidos Samba
    • 4.1 Creación de un recurso Samba público.
    • 4.2 Creación de un recurso Samba con permisos de escritura/lectura para ciertos grupos de usuarios.
    • 4.3 Creamos los directorios donde se montarán los recursos compartidos Samba
    • 4.4 Configuramos las interfaces del equipo con las que trabajará el Servidor Samba

 

 

 

 

 

  • 9. Pruebas desde cliente
    •  9.1 Pruebas de acceso a recurso compartido publico (1 usuario escritura, resto solo lectura. Se permite usuario invitado).
    •  9.2 Pruebas de acceso a recurso compartido administracion (solo puede escribir un grupo de usuarios. Otro grupo tiene permisos de solo lectura.).

 

  • 10. Clientes Samba (medios para acceder a recursos compartidos Samba)
    • A través de navegador de archivos y red
    • A través de la opción: Conectar al Servidor
    • Desde Equipos Windows:
      • Opción ejecutar: \\IP del server Samba
      • A través de opción: Explorar la Red
    • A través de Terminal (utilizando protocolo SMB)
      • Con smbclient
    • A través de navegador web.
    • Otros Comandos Samba
      • Listar Shares
        • a) con smbclient
        • b) con el comando “net
      • smbstatus samba

 

1 y 2. INSTALACIÓN DE  SAMBA SERVER Y CLIENTE SAMBA

 

Primero instalamos el servidor:

apt install samba

 

Luego instalamos el cliente:

apt install smbclient

 
Ahora que hemos instalado el servidor Samba, con sus dos demonios: smbd (comparte recursos por SMB) y nmbd (compatibilidad con NETBIOS de Windows), vamos a ver como configurar el Servidor Samba y los recursos compartidos (configurando el archivo smb.conf).

 

 

3. CONFIGURAR SAMBA | ARCHIVO DE CONFIGURACIÓN SMB.CONF

 
El fichero de configuración principal de Samba es /etc/samba/smb.conf

Dentro del archivo smb.conf hay algunos aspectos básicos que hemos de configurar correctamente para que el servidor Samba funcione:

 

  • La interfaz del equipo Linux que escucha y comparte los recursos a través de la red conectada a dicha interfaz.
     
    interfaces servidor samba

 

  • El nombre de Dominio o Grupo de trabajo (WORKGROUP)
     workgroup samba server

 

  • Podemos habilitar el soporte WINS (Servidor de nombres de Microsoft para NETBIOS)
     
    servidor samba - wins support

 

  • Podemos configurar el rol del servidor: standalone server, member server o classic primary domain controller
     
    samba server role

 

  • Los Recursos Compartidos en un Servidor Samba:
    • Hemos de definir el nombre de/los recursos compartidos
    • Los permisos (si es de solo escritura o solo lectura, si solo pueden leer o escribir ciertos grupos de usuarios …)
    • el directorio que se comparte (Hemos de concretar el Path del directorio que se compartirá)

configurar recursos compartidos samba en smb.conf

 

 

4. CREACIÓN DE RECURSOS COMPARTIDOS SAMBA

 

Vamos a crear varios recursos compartidos dentro del fichero smb.conf.

 

–> Uno de ellos permitirá a 1 usuario y/o 1 grupo de usuarios que puedan escribir, y todo el mundo pueda leer (recurso público). Punto 4.1

–> Y el otro solo será accesible por dos grupos, y solo uno de ellos tendrá permisos de escritura (recurso administración). Punto 4.2

 

 

4.1 Crear un recurso compartido en el que 1 usuario o 1 grupo de usuarios pueden escribir, y todo el mundo puede leer (recurso público).

 
Primero crearemos un recurso público, sin restricciones, para que pueda acceder cualquier usuario, incluso invitados. Aunque esos usuarios solamente tendrán permisos de lectura.

 

[publico]
 
comment = publico....
 
path = /srv/samba/publico
 
browseable = yes
 
read only  = no
 
guest ok   = yes
 
write list = @root

 

 
recurso compartido samba publico

 

 

4.2 Creamos un recurso compartido en el que solo los usuarios de un grupo tengan permisos de escritura, y los usuarios de otro grupo tengan permisos de lectura.

 
Como decíamos, también crearemos un recurso solamente accesible por los usuarios pertenecientes a cierto grupo de usuarios.

En este caso crearemos el recurso administracion, al que podrán acceder los usuarios de los grupos administracion y jefes, pero solo los usuarios del grupo administracion podrán escribir en el directorio y sus archivos.

[administracion]
 
comment = solo para grupo administracion
 
path = /srv/samba/administracion
 
browseable = yes
 
read only  = yes
 
guest ok   = no
 
write list = @administracion
 
valid users = @administracion, @jefes

 

recurso compartido samba - permisos de escritura, lectura, grupos y usuarios
 

 

4.3 Creamos en la máquina los directorios donde se montarán los recursos compartidos Samba

 
Los recursos compartidos Samba han de ser creados en algún directorio del Servidor, y otorgados también los permisos adecuados a los usuarios.
 
En este caso crearemos los directorios, por ejemplo en /srv/samba/

Y  ya dentro de dicho Path, crearemos los recursos comentados anteriormente (estos Path son los que habremos de incluir posteriormente en el fichero de configuración smb.conf, cuando declaremos la creación de los recursos compartidos).
 

Así que creamos:

  • Un recurso de acceso libre, de solo lectura (/srv/samba/publico)
  • Un recurso al que solo podrán acceder los miembros de 2 grupos de usuarios, y solo los miembros de uno de esos grupos podrán escribir. (/srv/samba/administracion)

 

Creamos los directorios:

/srv/samba/administracion

/srv/samba/publico

mkdir /srv/samba/publico
 
mkdir /srv/samba/administracion

 

 

4.4 Configuramos las interfaces del equipo con las que trabajará el Servidor Samba

 
Si bien este apartado hemos de configurarlo en el archivo smb.conf, vamos a verlo dentro de este punto, en el que estamos configurando los recursos compartidos por Samba.

#### Networking ####
 
# The specific set of interfaces / networks to bind to
 
# This can be either the interface name or an IP address/netmask;
 
# interface names are normally preferred
 
;   interfaces = 127.0.0.0/8 eth0
 
interfaces = 192.168.0.160/24 eth0

 

 

5. GESTIÓN DE USUARIOS, PERMISOS Y GRUPOS SAMBA

 

Es fundamental la gestión de usuarios, permisos y grupos Samba.

No solo hemos de controlar desde el Servidor Samba los permisos que tendrán los usuarios y grupos a ciertos recursos compartidos, sino que estos permisos guardarán relación con los permisos que tengan dichos usuarios creados también de forma local en el Servidor Samba.

 

Podemos ver la gestión de usuarios, permisos y grupos Samba aquí.

 

 

6. PERMISOS ADECUADOS PARA RECURSOS COMPARTIDOS SAMBA

 
Relacionado con el apartado anterior, tenemos los permisos que otorgaremos a los recursos compartidos Samba.
 
Al igual que los usuarios, los recursos compartidos no solo aplicarán los permisos configurados para dichos recursos en el archivo smb.conf, sino que se tendrán en cuenta los permisos asignados a los directorios de la máquina que conformarán esos recursos compartidos.
 

Podemos ver la gestión de permisos para recursos Samba aquí.

 

 

7. Revisar configuración del archivo de configuración de Samba con el comando testparm

 
Hacemos un testparm para validar el contenido del fichero de configuración smb.conf
 
Si no hay errores, se listarán los servicios cargados.

testparm smb.conf

 
En la siguiente captura comprobamos un tesparm que muestra que los servicios se han cargado correctamente y no hay errores (línea 5 de los resultados que arroja el comando):

Loaded services file OK.

 
testparm samba

 

Y en esta otra captura podemos ver cómo testparm nos muestra que hay un error en el fichero de configuración de Samba (smb.conf):

testparm error samba

 

 

8. REINICIAMOS EL SERVICIO SAMBA

 

systemctl restart smbd.service

o

/etc/init.d/smbd restart

 

 

9. PRUEBAS SAMBA DESDE CLIENTES

 

9.1 Pruebas de acceso a recurso publico (todos usuarios permiso lectura)

nautilus, explorador de archivos y red en Debian

 

Ahora desde otro equipo situado en la red, accedemos al explorador de archivos y equipos de red. En este caso lo hacemos desde Debian, pero podemos comprobarlo desde Ubuntu, Suse, o cualquier distro Linux que tenga instalado el cliente smb…  igualmente desde clientes Windows (que ya utilizan el protocolo smb para compartir archivos y acceder a recursos compartidos).

 

 

 

 

 

 

 

 

 

Examinamos la red desde el explorador de archivos y red:

examinar la red de Linux con Nautilus
 
 

Accedemos al WORKGROUP o DOMINIO adecuado:

Acceder a workgroup en red linux, con Nautilus
 
 

Accedemos al recurso compartido publico:

Acceder a recurso compartido publico Samba en Linux
 
 

Vemos los ficheros dentro del recurso compartido:

ficheros de un recurso compartido publico creado con samba en linux.

 

 

9.2 Pruebas de acceso a recurso administracion (un grupo permiso escritura y lectura, otro grupo solo permiso lectura).

 

Ahora accedemos al recurso administración, en este caso a través del navegador de archivos de Linux, con el usuario correcto.

 

El usuario administracionuser, perteneciente al grupo administracion, tiene permisos de escritura.

acceso a recurso samba con smb
 
 

Vemos que el usuario puede escribir y ejecutar en los ficheros del directorio:

usuario con permisos samba puede escribir y ejecutar
 

El usuario jefeuser, sin embargo, solo tiene permisos de lectura, no de escritura:

No se pudo guardar el archivo <>

No tiene los permisos necesarios para guardar el archivo.

Usuario Samba sin permiso de escritura: No se pudo guardar el archivo usuario samba permisos solo lectura

 

 

10. Clientes Samba (medios para acceder a recursos compartidos Samba)

 
Podemos acceder a los recursos compartidos de nuestro Servidor Samba de diversas formas.

Consulta el artículo sobre Clientes Samba y SMB

 

 

En este artículo acabamos de ver como realizar una configuración bastante completa de un Servidor Samba, junto con la configuración de permisos de usuarios, grupos y las formas de acceder como cliente SMB a los recursos compartidos Samba.
 

 

Fuentes y agradecimientos: