Categorías Linux

Servidor Samba en Linux

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

 

 
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.
     

 

  • El nombre de Dominio o Grupo de trabajo (WORKGROUP)
     

 

  • Podemos habilitar el soporte WINS (Servidor de nombres de Microsoft para NETBIOS)
     

 

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

 

  • 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á)

 

 

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

 

 

 

 

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

 


 

 

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.

 

 

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):

 

 

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)

 

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:


 
 

Accedemos al WORKGROUP o DOMINIO adecuado:


 
 

Accedemos al recurso compartido publico:


 
 

Vemos los ficheros dentro del recurso compartido:

 

 

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.


 
 

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


 

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.

 

 

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:

 

 

Los comentarios de Disqus están cargando....