GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar y configurar Samba en Ubuntu 18.04

Samba es una reimplementación gratuita y de código abierto del protocolo de intercambio de archivos de red SMB/CIFS que permite a los usuarios finales acceder a archivos, impresoras y otros recursos compartidos.

Este tutorial explica cómo instalar Samba en Ubuntu 18.04 y configurarlo como un servidor independiente para compartir archivos entre diferentes sistemas operativos a través de una red.

Crearemos los siguientes recursos compartidos y usuarios de Samba.

Usuarios:

  • sadmin - Un usuario administrativo con acceso de lectura y escritura a todos los recursos compartidos.
  • jose - Un usuario normal con su propio recurso compartido de archivos privado.

Acciones:

  • usuarios - Todos los usuarios podrán acceder a este recurso compartido con permisos de lectura/escritura.
  • jose - Solo los usuarios josh y sadmin podrán acceder a este recurso compartido con permisos de lectura/escritura.

Se podrá acceder a los recursos compartidos de archivos desde todos los dispositivos de su red. Más adelante en este tutorial, también proporcionaremos instrucciones detalladas sobre cómo conectarse al servidor Samba desde clientes Linux, Windows y macOS.

Requisitos previos #

Antes de continuar, asegúrese de haber iniciado sesión en su sistema Ubuntu 18.04 como usuario con privilegios de sudo.

Instalando Samba en Ubuntu #

Samba está disponible en los repositorios oficiales de Ubuntu. Para instalarlo en su sistema Ubuntu, siga los pasos a continuación:

  1. Comience actualizando el índice de paquetes apt:

    sudo apt update
  2. Instale el paquete Samba con el siguiente comando:

    sudo apt install samba
  3. Una vez completada la instalación, el servicio Samba se iniciará automáticamente. Para verificar si el servidor Samba se está ejecutando, escriba:

    sudo systemctl status smbd

    El resultado debería parecerse a lo siguiente, lo que indica que el servicio Samba está activo y ejecutándose:

    ● smbd.service - Samba SMB Daemon
       Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled)
       Active: active (running) since Wed 2019-11-27 09:25:38 UTC; 2min 12s ago
         Docs: man:smbd(8)
               man:samba(7)
               man:smb.conf(5)
     Main PID: 15142 (smbd)
       Status: "smbd: ready to serve connections..."
        Tasks: 4 (limit: 1152)
       CGroup: /system.slice/smbd.service
    ...

En este punto, Samba se ha instalado y está listo para configurarse.

Configurando cortafuegos #

Si tiene un firewall ejecutándose en su sistema Ubuntu, deberá permitir las conexiones UDP entrantes en los puertos 137 y 138 y conexiones TCP en los puertos 139 y 445 .

Suponiendo que está utilizando UFW para administrar su firewall, puede abrir los puertos habilitando el perfil 'Samba':

sudo ufw allow 'Samba'

Configuración de opciones globales de Samba #

Antes de realizar cambios en el archivo de configuración de Samba, cree una copia de seguridad para futuras referencias:

sudo cp /etc/samba/smb.conf{,.backup}

El archivo de configuración predeterminado que se incluye con el paquete Samba está configurado para un servidor Samba independiente. Abra el archivo y asegúrese de server role está configurado para standalone server

sudo nano /etc/samba/smb.conf
/etc/samba/smb.conf
...
# Most people will want "standalone sever" or "member server".
# Running as "active directory domain controller" will require first
# running "samba-tool domain provision" to wipe databases and create a
# new domain.
   server role = standalone server
...

Por defecto, Samba escucha en todas las interfaces. Si desea restringir el acceso al servidor Samba solo desde su red interna, elimine los comentarios de las siguientes dos líneas y especifique las interfaces a las que vincularse:

/etc/samba/smb.conf
...
# 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

# Only bind to the named interfaces and/or networks; you must use the
# 'interfaces' option above to use this.
# It is recommended that you enable this feature if your Samba machine is
# not protected by a firewall or is a firewall itself.  However, this
# option cannot handle dynamic or non-broadcast interfaces correctly.
bind interfaces only = yes
...

Una vez hecho esto, ejecute el testparm utilidad para verificar el archivo de configuración de Samba en busca de errores. Si no hay errores de sintaxis, verá Loaded services file OK.

Finalmente, reinicie los servicios de Samba con:

sudo systemctl restart smbdsudo systemctl restart nmbd

Creación de usuarios de Samba y estructura de directorio #

Para facilitar el mantenimiento y la flexibilidad en lugar de utilizar los directorios de inicio estándar (/home/user ) todos los directorios y datos de Samba se ubicarán en /samba directorio.

Para crear el /samba tipo de directorio:

sudo mkdir /samba

Establezca la propiedad del grupo en sambashare . Este grupo se crea durante la instalación de Samba, luego agregaremos todos los usuarios de Samba a este grupo.

sudo chgrp sambashare /samba

Samba utiliza usuarios de Linux y un sistema de permisos de grupo, pero tiene su propio mecanismo de autenticación independiente de la autenticación estándar de Linux. Crearemos los usuarios usando el useradd estándar de Linux herramienta y luego establezca la contraseña de usuario con el smbpasswd utilidad.

Como mencionamos en la introducción, crearemos un usuario regular que tendrá acceso a su recurso compartido de archivos privado y una cuenta administrativa con acceso de lectura y escritura a todos los recursos compartidos en el servidor Samba.

Creando usuarios de Samba #

Para crear un nuevo usuario llamado josh use el siguiente comando:

sudo useradd -M -d /samba/josh -s /usr/sbin/nologin -G sambashare josh

El useradd opciones tienen los siguientes significados:

  • -M -no crear el directorio de inicio del usuario. Crearemos manualmente este directorio.
  • -d /samba/josh - establezca el directorio de inicio del usuario en /samba/josh .
  • -s /usr/sbin/nologin - deshabilitar el acceso de shell para este usuario.
  • -G sambashare - agregar el usuario a sambashare grupo.

Cree el directorio de inicio del usuario y establezca la propiedad del directorio en el usuario josh y grupo sambashare :

sudo mkdir /samba/joshsudo chown josh:sambashare /samba/josh

El siguiente comando agregará el bit setgid al /samba/josh directorio por lo que los archivos recién creados en este directorio heredarán el grupo del directorio principal. De esta manera, no importa qué usuario cree un nuevo archivo, el archivo tendrá el propietario del grupo de sambashare . Por ejemplo, si no establece los permisos del directorio en 2770 y el sadmin usuario crea un nuevo archivo el usuario josh no podrá leer/escribir en este archivo.

sudo chmod 2770 /samba/josh

Agrega el josh cuenta de usuario a la base de datos de Samba configurando la contraseña de usuario:

sudo smbpasswd -a josh

Se le pedirá que ingrese y confirme la contraseña de usuario.

New SMB password:
Retype new SMB password:
Added user josh.

Una vez configurada la contraseña para habilitar la ejecución de la cuenta de Samba:

sudo smbpasswd -e josh
Enabled user josh.

Para crear otro usuario, repita el mismo proceso que cuando creó el usuario josh .

A continuación, vamos a crear un usuario y un grupo sadmin . Todos los miembros de este grupo tendrán permisos administrativos. Más tarde, si desea otorgar permisos administrativos a otro usuario, simplemente agregue ese usuario a sadmin grupo.

Cree el usuario administrativo escribiendo:

sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin

El comando anterior también creará un grupo sadmin y agregue el usuario a ambos sadmin y sambashare grupos.

Establezca una contraseña y habilite el usuario:

sudo smbpasswd -a sadminsudo smbpasswd -e sadmin

A continuación, cree los Users compartir directorio:

sudo mkdir /samba/users

Establezca la propiedad del directorio en el usuario sadmin y grupo sambashare :

sudo chown sadmin:sambashare /samba/users

Todos los usuarios autenticados podrán acceder a este directorio. El siguiente chmod El comando otorga acceso de escritura/lectura a los miembros de sambashare grupo en el /samba/users directorio:

sudo chmod 2770 /samba/users

Configuración de recursos compartidos Samba #

Abra el archivo de configuración de Samba y agregue las secciones:

sudo nano /etc/samba/smb.conf
/etc/samba/smb.conf
[users]
    path = /samba/users
    browseable = yes
    read only = no
    force create mode = 0660
    force directory mode = 2770
    valid users = @sambashare @sadmin

[josh]
    path = /samba/josh
    browseable = no
    read only = no
    force create mode = 0660
    force directory mode = 2770
    valid users = josh @sadmin

Las opciones tienen los siguientes significados:

  • [users] y [josh] - Los nombres de los recursos compartidos que utilizará al iniciar sesión.
  • path - La ruta al recurso compartido.
  • browseable - Si la acción debe figurar en la lista de acciones disponibles. Configurando a no otros usuarios no podrán ver el recurso compartido.
  • read only - Si los usuarios especificados en los valid users lista pueden escribir en este recurso compartido.
  • force create mode - Establece los permisos para los archivos recién creados en este recurso compartido.
  • force directory mode - Establece los permisos para los directorios recién creados en este recurso compartido.
  • valid users - Una lista de usuarios y grupos que pueden acceder al recurso compartido. Los grupos tienen el prefijo @ símbolo.

Para obtener más información sobre las opciones disponibles, consulte la página de documentación del archivo de configuración de Samba.

Una vez hecho esto, reinicie los servicios de Samba con:

sudo systemctl restart smbdsudo systemctl restart nmbd

En las siguientes secciones, le mostraremos cómo conectarse a un recurso compartido Samba desde clientes Linux, macOS y Windows.

Conectando a un recurso compartido Samba desde Linux #

Los usuarios de Linux pueden acceder al recurso compartido de Samba desde la línea de comandos, utilizando el administrador de archivos o montar el recurso compartido de Samba.

Usando el cliente smbclient #

smbclient es una herramienta que te permite acceder a Samba desde la línea de comandos. El smbclient El paquete no está preinstalado en la mayoría de las distribuciones de Linux, por lo que deberá instalarlo con el administrador de paquetes de su distribución.

Para instalar smbclient en Ubuntu y Debian ejecutar:

sudo apt install smbclient

Para instalar smbclient en CentOS y Fedora ejecute:

sudo yum install samba-client

La sintaxis para acceder a un recurso compartido de Samba es la siguiente:

mbclient //samba_hostname_or_server_ip/share_name -U username

Por ejemplo, para conectarse a un recurso compartido llamado josh en un servidor Samba con dirección IP 192.168.121.118 como usuario josh ejecutarías:

smbclient //192.168.121.118/josh -U josh

Se le pedirá que ingrese la contraseña de usuario.

Enter WORKGROUP\josh's password: 

Una vez que ingrese la contraseña, iniciará sesión en la interfaz de línea de comandos de Samba.

Try "help" to get a list of possible commands.
smb: \>

Montar el recurso compartido de Samba #

Para montar un recurso compartido de Samba en Linux, primero debe instalar cifs-utils paquete.

En Ubuntu y Debian ejecute:

sudo apt install cifs-utils

En CentOS y Fedora ejecute:

sudo yum install cifs-utils

A continuación, cree un punto de montaje:

sudo mkdir /mnt/smbmount

Monte el recurso compartido con el siguiente comando:

sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount

Por ejemplo, para montar un recurso compartido llamado josh en un servidor Samba con dirección IP 192.168.121.118 como usuario josh al /mnt/smbmount punto de montaje que ejecutarías:

sudo mount -t cifs -o username=josh //192.168.121.118/josh /mnt/smbmount

Se le pedirá que ingrese la contraseña de usuario.

Password for josh@//192.168.121.118/josh:  ********

Usando GUI #

Archivos, el administrador de archivos predeterminado en Gnome tiene una opción integrada para acceder a los recursos compartidos de Samba.

  1. Abra Archivos y haga clic en "Otras ubicaciones" en la barra lateral.
  2. En "Conectar al servidor", ingrese la dirección del recurso compartido de Samba en el siguiente formato smb://samba_hostname_or_server_ip/sharename .
  3. Haga clic en "Conectar" y aparecerá la siguiente pantalla:
  4. Seleccione "Usuario registrado", ingrese el nombre de usuario y la contraseña de Samba y haga clic en "Conectar".
  5. Se mostrarán los archivos en el servidor Samba.

Conexión a un recurso compartido Samba desde macOS #

En macOS, puede acceder a los recursos compartidos de Samba desde la línea de comandos o utilizando el Finder del administrador de archivos predeterminado de macOS. Los siguientes pasos muestran cómo acceder al recurso compartido usando Finder.

  1. Abra "Finder", seleccione "Ir" y haga clic en "Conectar a".
  2. En "Conectar a", ingrese la dirección del recurso compartido de Samba en el siguiente formato smb://samba_hostname_or_server_ip/sharename .
  3. Haga clic en "Conectar" y aparecerá la siguiente pantalla:
  4. Seleccione "Usuario registrado", ingrese el nombre de usuario y la contraseña de Samba y haga clic en "Conectar".
  5. Se mostrarán los archivos en el servidor Samba.

Conexión a un recurso compartido Samba desde Windows #

Los usuarios de Windows también tienen la opción de conectarse al recurso compartido de Samba desde la línea de comandos y la GUI. Los pasos a continuación muestran cómo acceder al recurso compartido mediante el Explorador de archivos de Windows.

  1. Abra el Explorador de archivos y, en el panel izquierdo, haga clic con el botón derecho en "Esta PC".
  2. Seleccione "Elegir una ubicación de red personalizada" y luego haga clic en "Siguiente".
  3. En "Dirección de Internet o red", ingrese la dirección del recurso compartido de Samba en el siguiente formato \\samba_hostname_or_server_ip\sharename .
  4. Haga clic en "Siguiente" y se le pedirá que ingrese las credenciales de inicio de sesión como se muestra a continuación:
  5. En la siguiente ventana, puede escribir un nombre personalizado para la ubicación de la red. El servidor Samba seleccionará el predeterminado.
  6. Haga clic en "Siguiente" para pasar a la última pantalla del asistente de configuración de conexión.
  7. Haga clic en "Finalizar" y se mostrarán los archivos en el servidor Samba.

Ubuntu
  1. Cómo instalar y configurar Redis en Ubuntu 18.04

  2. Cómo instalar y configurar Redmine en Ubuntu 18.04

  3. Cómo instalar y configurar Redis en Ubuntu 20.04

  4. Cómo instalar y configurar Jenkins en Ubuntu 20.04

  5. ¿Cómo instalar y configurar samba en Ubuntu linux?

Cómo instalar y configurar Neo4j en Ubuntu 20.04

Cómo instalar y configurar Samba en Ubuntu

Cómo instalar y configurar Ubuntu SDK en Ubuntu 16.04 y 14.04

Cómo instalar y configurar PostgreSQL en Ubuntu

Cómo instalar y configurar Hadoop en Ubuntu 20.04

Cómo instalar y configurar Samba en Ubuntu 20.04