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:
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).
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:
–> 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
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
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
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:
Creamos los directorios:
/srv/samba/administracion
/srv/samba/publico
mkdir /srv/samba/publico
mkdir /srv/samba/administracion
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
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í.
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í.
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):
systemctl restart smbd.service
o
/etc/init.d/smbd restart
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:
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.
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.