en este tutorial, vamos a aprender cómo instalar y configurar un servidor Samba en Ubuntu para compartir archivos en la red local. Samba es una implementación de protocolo SMB/CIFS libre y de código abierto para Unix y Linux que permite compartir archivos e impresiones entre máquinas Unix/Linux, Windows y macOS en una red de área local.
Samba normalmente se instala y ejecuta en Linux., Comprende varios programas que sirven para propósitos diferentes pero relacionados, los dos más importantes de los cuales son:
- smbd: proporciona el servicio SMB/CIFS (intercambio de archivos e impresión), también puede actuar como un controlador de dominio de Windows.
- nmbd: este demonio proporciona el servicio de nombres NetBIOS, escucha las solicitudes del servidor de nombres. También permite que el servidor Samba sea encontrado por otros equipos en la red.
cómo instalar Samba Server en Ubuntu
Samba está incluido en la mayoría de las distribuciones de Linux. Para instalar Samba en Ubuntu, simplemente ejecute el siguiente comando en terminal.,
sudo apt install samba samba-common-bin
La última versión estable disponible es 4.12.0, lanzada el 03 de marzo de 2019. Para comprobar su versión de Samba, ejecute
smbd --version
Salida de muestra:
Version 4.7.6-Ubuntu
para comprobar si el servicio Samba se está ejecutando, ejecute el siguiente comando.
systemctl status smbd nmbd
Para iniciar estos dos servicios, emita el siguiente comando:
sudo systemctl start smbd nmbd
una Vez iniciado, smbd
estará escuchando en el puerto TCP 139 y 445. nmbd
estará escuchando en los puertos UDP 137 y 138.,
- TCP 139: se utiliza para compartir archivos e impresoras y otras operaciones.
- TCP 445: el puerto CIFS sin NetBIOS.
- UDP 137: se utiliza para la navegación de red NetBIOS.
- UDP 138: se utiliza para el servicio de nombres NetBIOS.
si ha habilitado el firewall de UFW en Ubuntu, entonces necesita abrir los puertos anteriores en el firewall con el siguiente comando.
sudo ufw allow samba
crear un recurso compartido de Samba privado
en esta sección, veremos cómo crear un recurso compartido de Samba privado que requiere que el cliente ingrese nombre de usuario y contraseña para obtener acceso., El archivo de configuración principal de Samba se encuentra en: /etc/samba/smb.conf
. Puede editarlo en terminal con un editor de texto de línea de comandos como nano
.
sudo nano /etc/samba/smb.conf
en la sección , asegúrese de que el valor de sea el mismo con la configuración del grupo de trabajo de los equipos Windows.,
workgroup = WORKGROUP
Usted puede encontrar la configuración de su ordenador con Windows por ir a Control Panel
> System and Security
> System
.
a Continuación, desplácese hacia abajo hasta la parte inferior del archivo. (En el editor de texto nano, puede lograrlo presionando CTRL+W
luego CTRL+V
. ) Añadir una nueva sección como a continuación.,
explicación:
-
Private
es el nombre de la carpeta que se mostrará en la red de Windows. - El comentario es una descripción de la carpeta compartida.
- El parámetro path especifica la ruta de acceso a la carpeta compartida. Utilizo
/srv/samba/private/
como ejemplo. También puede usar una carpeta en su directorio personal. -
browseable = yes
: permite que otros equipos de la red vean el servidor Samba y el recurso compartido Samba., Si se establece en no, los usuarios deben conocer el nombre del servidor Samba y luego ingresar manualmente una ruta en el administrador de archivos para acceder a la carpeta compartida. -
guest ok = no
: Deshabilitar el acceso de invitados. En otras palabras, debe ingresar el nombre de usuario y la contraseña en el equipo cliente para acceder a la carpeta compartida. -
writable = yes
: Otorga permisos de lectura y escritura a los clientes. -
valid users = @samba
: solo los usuarios del grupo samba pueden acceder a este recurso compartido de Samba.
Guarde y cierre el archivo., (Para guardar el archivo en el editor de texto nano, presione Ctrl+O
, luego presione ENTRAR para confirmar el nombre del archivo a escribir. Para cerrar el archivo, pulse Ctrl+X
.) Ahora Necesitamos crear un usuario de Samba. Primero, necesitamos crear una cuenta de usuario estándar de Linux con el siguiente comando. Reemplace username
con su nombre de usuario deseado.
sudo adduser username
se le pedirá que establezca una contraseña de Unix., Después de eso, también debe establecer una contraseña de Samba separada para el nuevo usuario con el siguiente comando:
sudo smbpasswd -a username
crear el grupo samba.
sudo groupadd samba
Y agregar este usuario al grupo samba.
sudo gpasswd -a username samba
crear la carpeta compartida privada.
sudo mkdir -p /srv/samba/private/
el grupo samba necesita tener permisos de lectura, escritura y ejecución en la carpeta compartida. Puede conceder estos permisos ejecutando el siguiente comando., (Si su sistema no tiene el comando setfacl
, debe instalar el paquete acl
con sudo apt install acl
.)
sudo setfacl -R -m "g:samba:rwx" /srv/samba/private/
a continuación, ejecute el siguiente comando para comprobar si hay errores sintácticos.
testparm
Ahora todo queda por hacer es reiniciar smbd
y nmbd
demonio.,
sudo systemctl restart smbd nmbd
cómo crear un recurso compartido público de Samba sin autenticación
para crear un recurso compartido público sin requerir nombre de usuario y contraseña, se deben cumplir las siguientes condiciones.
- Set
security = user
en la sección global del archivo de configuración de Samba. Aunque puede crear un recurso compartido público con el modosecurity = share
, este modo de seguridad está obsoleto. Se recomienda encarecidamente que evite el modoshare
. - Set
map to guest = bad user
en la sección global del archivo de configuración de Samba., Esto hará quesmbd
use una cuenta de invitado para autenticar clientes que no tienen una cuenta registrada en el servidor Samba. Como se trata de una cuenta de invitado, los clientes de Samba no necesitan introducir la contraseña. - establezca
guest ok = yes
en la definición de recurso compartido para permitir el acceso de invitados. - conceder permiso de lectura, escritura y ejecución de la carpeta pública a la cuenta
nobody
, que es la cuenta invitada predeterminada.
de hecho, las dos primeras condiciones ya se cumplen ya que Samba utiliza por defecto estas dos configuraciones.,
Aquí hay una guía paso a paso para crear un recurso compartido público. Primero, abra y edite el archivo de configuración de Samba.
sudo nano /etc/samba/smb.conf
en la sección , asegúrese de que el valor de sea el mismo con la configuración del grupo de trabajo de los equipos Windows.
workgroup = WORKGROUP
Usted puede encontrar la configuración de su ordenador con Windows por ir a Control Panel
> System and Security
> System
.,
luego desplácese hacia abajo hasta la parte inferior del archivo y pegue las siguientes líneas.
Guardar y cerrar el archivo. A continuación, cree la carpeta /srv/samba/public/
.
sudo mkdir -p /srv/samba/public
a continuación, asegúrese de que la cuenta nobody
tiene permiso de lectura, escritura y ejecución en la carpeta pública ejecutando el siguiente comando. (Si su sistema no tiene el comando setfacl
, debe instalar el paquete acl
con sudo apt install acl
.,)
sudo setfacl -R -m "u:nobody:rwx" /srv/samba/public/
Reiniciar smbd y nmbd.
sudo systemctl restart smbd nmbd
acceder a la carpeta compartida Samba desde Windows
en un equipo Windows que se encuentra en la misma red, abra el Explorador de archivos y haga clic en Network
en el panel izquierdo. Si ve el siguiente mensaje, debe hacer clic en el mensaje y activar la detección de red y el uso compartido de archivos.
File sharing is turned off. Some network computers and devices might not be visible.
a continuación, introduzca \\
seguido de la dirección IP del servidor Samba en la barra de direcciones del Explorador de archivos, así: \\192.168.0.102
., Verá una lista de recursos compartidos en el servidor Samba.
a Continuación, haga doble clic en la carpeta compartida. Para acceder al recurso compartido privado, debe ingresar el nombre de usuario y la contraseña de samba. No es necesario que lo hagas para acceder a recursos compartidos públicos.
Una vez conectado, puede leer, escribir y eliminar archivos en la carpeta compartida de Samba.
error de conexión
si obtiene el siguiente error:
You do not have permission to access \\hostname\share-name. Contact your network administrator to request access.
puede intentar conectarse al recurso compartido Samba desde el símbolo del sistema., Abra un símbolo del sistema y, a continuación, ejecute el siguiente comando para cerrar la sesión actual de Samba.
net use \\samba-server-ip\share-name /delete
a continuación, conéctese al recurso compartido de Samba con el siguiente comando:
net use \\samba-server-ip\share-name /user:samba-username password
Una vez que el comando anterior se haya completado correctamente, vaya a la pestaña de red en el Explorador de archivos y ahora debería poder acceder al recurso compartido de Samba.
asignación de unidades en Windows
Una característica del sistema operativo Windows es la capacidad de asignar una letra de unidad (como S:) a un directorio remoto., Para asignar la letra de unidad S:
al recurso compartido Samba, haga clic con el botón derecho en la carpeta compartida Samba y seleccione Asignar unidad de red. A continuación, elija una letra de unidad y haga clic en Finalizar.
Una vez establecida la asignación de unidades, las aplicaciones pueden acceder a los archivos en el recurso compartido Samba a través de la letra de unidad S:
. Y este recurso compartido de Samba se montará automáticamente cuando inicie sesión en su computadora con Windows.,
acceder a la carpeta compartida de Samba en el Administrador de archivos Nautilus en Linux
si está utilizando el administrador de archivos Nautilus, haga clic en Other Locations
en el panel izquierdo. En la parte inferior, verá una opción para conectarse al servidor. Para acceder a su recurso compartido Samba, escriba smb://
seguido de la dirección IP del servidor Samba y presione ENTRAR. Por ejemplo:
- smb://192.168.0.102
Usted verá una lista de los recursos compartidos en el servidor Samba.,
Si hace clic en la carpeta privada compartida, deberá ingresar el nombre de usuario y la contraseña de Samba. Si hace clic en la carpeta compartida pública, elija conectarse como Anónimo.
montar automáticamente el recurso compartido de Samba desde la línea de comandos en Linux
si necesita montar automáticamente el recurso compartido de Samba en el momento del arranque, puede usar la línea de comandos para montar y luego agregar una entrada en el archivo /etc/fstab
. Para hacer eso, necesita instalar el paquete cifs-utils
.,
CentOS/RHEL
sudo dnf install cifs-utils
Debian/Ubuntu
sudo apt install cifs-utils
a Continuación, cree un punto de montaje para el recurso compartido de Samba.
sudo mkdir /mnt/samba-private
Ahora puede utilizar el siguiente comando para montar una carpeta compartida privada.
sudo mount -t cifs -o username=your_samba_username //192.168.0.102/private /mnt/samba-private/
Se le pedirá que introduzca la contraseña de Samba. Después de eso, se montará en el directorio /mnt/samba-private/
.
para montar automáticamente el recurso compartido Samba, edite el archivo /etc/fstab
.
sudo nano /etc/fstab
Añadir la siguiente línea en el archivo.,
Donde:
- //192.168.0.102/privado: la dirección IP del servidor Samba y el nombre del recurso compartido.
- / mnt / Samba-private: punto de montaje para el recurso compartido de Samba.
- cifs: tipo de sistema de archivos
- x-systemd.automount: esta opción le dice a systemd que cree una unidad de automount para el sistema de archivos. Usamos esto porque asegura que el sistema de archivos remoto se monte solo después de que haya acceso a la red.
- _netdev: especifica que el montaje requiere red.
- credentials=: Linux debe buscar credenciales en el archivo
/etc/samba-credential.conf
., - uid=1000,gid=1000: Por defecto el sistema de archivos montado sería propiedad del usuario root. Usamos uid y gid para cambiar la propiedad del sistema de archivos. Normalmente utiliza su propio uid y gid, que son ambos 1000 Por defecto.
- x-gvfs-show: si está utilizando el entorno de escritorio GNOME o sus derivados, puede usar esta opción para mostrar el sistema de archivos montado en el administrador de archivos.
Guarde y cierre el archivo. A continuación, cree el archivo de credenciales.
sudo nano /etc/samba-credential.conf
Agregar las siguientes líneas en el archivo.
username=your_samba_usernamepassword=samba_passworddomain=WORKGROUP
Guarde y cierre el archivo., Asegúrese de que solo el usuario root puede leer este archivo.
sudo chmod 600 /etc/samba-credential.conf
Si reinicia su computadora Linux ahora, el recurso compartido Samba se montará automáticamente.
¿no puede escribir en el recurso compartido de Samba?
el montaje CIFS descrito anteriormente le permite escribir en el recurso compartido Samba. Si ves el siguiente error al crear el archivo:
Read-only file system
Compruebe que establece writable = yes
en el archivo de configuración de Samba., A veces, la carpeta compartida de Samba está en un disco duro externo, luego asegúrese de montar el disco duro externo en modo de lectura y escritura en el servidor Samba. Por ejemplo, monté mi disco duro btrfs
con la siguiente línea en /etc / fstab.
LABEL=5TB /mnt/5TB btrfs defaults 0 0
resulta que el defaults
opción de no permitir la operación de escritura. Para que sea escribible, agregue la opción rw
.
LABEL=5TB /mnt/5TB btrfs defaults,rw 0 0
luego desmonte el disco duro. Necesitas usar tu propio punto de montaje.
sudo umount /mnt/5TB
Y montarlo de nuevo.,
sudo mount -a
sugerencia de solución de problemas
Si su servidor Samba no funciona como se esperaba, puede verificar los archivos de registro en /var/log/samba/
directorio. Puede agregar la siguiente línea en la sección del archivo
/etc/samba/smb.conf
para aumentar el nivel de registro si desea registrar más información.
log level = 2
terminando
¡eso es todo! Espero que este tutorial le haya ayudado a configurar el servidor Samba en Ubuntu. Como siempre, si te ha parecido útil esta publicación, Suscríbete a nuestro boletín gratuito., Y también es posible que desee leer el siguiente artículo para compartir la impresora en la red local.
- Configurar el Servidor de Impresión CUPS en Ubuntu (Bonjour, IPP, Samba, AirPrint)