Actualizado el 6 de Junio de 2021
Una forma rápida y sencilla de instalar Samba, primero como siempre actualizar:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
Servidor
Instalamos los paquetes samba necesarios
sudo apt-get install samba-common smbclient samba
En adelante vamos a usar el usuario pi para los ejemplos que es el que viene por defecto en la instalación, si quisiéramos usar otro podríamos crearlo con:
sudo adduser acme
Igual puede interesar crear un usuario solo para validarse por red pero no para poder iniciar sesión como un usuario normal, algo parecido a una cuenta de servicio.
sudo adduser -shell /bin/false --no-create-home acme
Y ahora establecemos una contraseña de red para que este usuario se pueda conectar a la carpeta compartida:
sudo smbpasswd -a acme
Ahora creamos la carpeta de red en el fichero /etc/samba/smb.conf
[acme]
comment = La carpeta secreta del grupo Acme
path = /home/pi/acme
read only = No
valid users = acme
write list = acme # Usuarios que pueden escribir
create mask = 0660 # Mascara de creación de archivos
directory mask = 0770 # Máscara de creación de directorios
Con este comando verificamos que todo está correcto:
testparm
Hay que dar los permisos adecuados al usuario que hemos creado sobre la carpeta compartida, por ejemplo:
sudo chown -R pi:pi /home/pi/acme
Si todo es correcto reiniciamos Samba:
sudo service smbd restart
Si tenemos algún problema al configurar o conectar al recurso remoto podemos usar el comando smbclient para poder ver los recursos compartidos de un servidor, este comando nos pedirá una contraseña para poder acceder y nos sacará los recursos compartidos.
smbclient -L coyote.acme.hell
Cliente
Ahora hay que configurar y probar el lado cliente, ya sea desde Linux o desde Windows.
Raspberry Pi
Desde el lado cliente en una Raspberry se pueden establecer valores de permisos a ficheros y directorios a través de las opciones file_mode y dir_mode en el fichero /etc/fstab usando los valores a establecer en octal, estos serán los permisos que se establecerán al montar la unidad, un ejemplo de entrada fstab sería:
//servidor/carpeta /mnt/samba/servidor/carpeta cifs vers=1.0,file_mode=0775,dir_mode=0775,uid=pi,gid=pi,username=sambauser,password=acme,nofail,iocharset=utf8,auto 0 0
La opción vers sirve para indicar la versión del protocolo SMB a usar, si da errores al montar por parámetros incorrectos una opción puede ser establecer una versión más baja, 1.0, 2.0 o 3.0
Windows
Ahora conectamos al recurso remoto de la forma que elijamos y puede ser que obtengamos el siguiente error en Windows.

Es una advertencia de seguridad indicando que no se permite acceder a recursos remotos que permitan invitados, este comportamiento empezó en la versión 2.0 del protocolo SMB.
Es importante intentar acceder al servidor con el nombre completo, es decir, si tenemos un servidor que se llama server en un dominio home.local deberíamos usar \\server.home.local
Hay dos formas de evitar este error:
Una que es la más práctica es usando la opción de mapear unidades de red de Windows indicando explícitamente usuario y contraseña.
Es necesario también indicar la ruta completa el servidor a la hora de mapear la unidad, es decir \\servidor\carpeta
Si no se quiere usar el dominio por defecto se puede indicar como usuario .\pi al poner .\ se usará como dominio la máquina local.
La otra opción es deshabilitando este error, a través de Directiva de equipo local (gpedit.msc), en esta ruta:
Configuración de equipo local\plantillas administrativas\Red\Estación de trabajo Lanman\Habilitar inicios de sesión de invitado no seguros
Habilitamos esta opción lo que evitará el mensaje.
