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:
- 3. Configuración del Servidor SAMBA: archivo smb.conf
- Configuración de interfaz del servidor
- configuración de WORKGROUP
- Soporte WINS
- Rol del Servidor Samba
- Declaración de los Recursos Compartidos Samba (Path, permisos, usuarios … )
- 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
- 5. Gestión de usuarios, grupos y permisos Samba
- Creación de usuarios Samba
- Creación de usuarios y grupos locales Linux.
- Añadir usuarios a grupos
- Creación de usuarios locales como usuarios 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“
- Listar Shares
-
-
- 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:
- K. Peiruza
- Samba.org
- Instituto nacional de tecnologías educativas
- LPIC 2
- Red Hat Enterprise Linux 4: Manual de referencia
- Horas de recopilación de información, testeo e investigación propia