GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare e configurare Samba su Ubuntu 18.04

Samba è una re-implementazione gratuita e open source del protocollo di condivisione file di rete SMB/CIFS che consente agli utenti finali di accedere a file, stampanti e altre risorse condivise.

Questo tutorial spiega come installare Samba su Ubuntu 18.04 e configurarlo come server autonomo per fornire la condivisione di file tra diversi sistemi operativi su una rete.

Creeremo le seguenti condivisioni e utenti Samba.

Utenti:

  • sadmin - Un utente amministrativo con accesso in lettura e scrittura a tutte le condivisioni.
  • josh - Un utente normale con la propria condivisione di file privata.

Azioni:

  • utenti - Questa condivisione sarà accessibile con autorizzazioni di lettura/scrittura da tutti gli utenti.
  • josh - Questa condivisione sarà accessibile con autorizzazioni di lettura/scrittura solo dagli utenti josh e sadmin.

Le condivisioni di file saranno accessibili da tutti i dispositivi sulla rete. Più avanti in questo tutorial, forniremo anche istruzioni dettagliate su come connettersi al server Samba da client Linux, Windows e macOS.

Prerequisiti #

Prima di continuare, assicurati di aver effettuato l'accesso al tuo sistema Ubuntu 18.04 come utente con privilegi sudo.

Installazione di Samba su Ubuntu #

Samba è disponibile dai repository ufficiali di Ubuntu. Per installarlo sul tuo sistema Ubuntu segui i passaggi seguenti:

  1. Inizia aggiornando l'indice dei pacchetti apt:

    sudo apt update
  2. Installa il pacchetto Samba con il seguente comando:

    sudo apt install samba
  3. Una volta completata l'installazione, il servizio Samba si avvierà automaticamente. Per verificare se il server Samba è in esecuzione, digita:

    sudo systemctl status smbd

    L'output dovrebbe essere simile al seguente, indicando che il servizio Samba è attivo e in esecuzione:

    ● 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
    ...

A questo punto Samba è stato installato e pronto per essere configurato.

Configurazione del firewall #

Se hai un firewall in esecuzione sul tuo sistema Ubuntu dovrai consentire le connessioni UDP in entrata sulle porte 137 e 138 e connessioni TCP sulle porte 139 e 445 .

Supponendo che tu stia usando UFW per gestire il tuo firewall, puoi aprire le porte abilitando il profilo 'Samba':

sudo ufw allow 'Samba'

Configurazione delle opzioni globali di Samba #

Prima di apportare modifiche al file di configurazione di Samba, crea un backup per scopi di riferimento futuri:

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

Il file di configurazione predefinito fornito con il pacchetto Samba è configurato per il server Samba autonomo. Apri il file e assicurati server role è impostato su 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
...

Per impostazione predefinita, Samba è in ascolto su tutte le interfacce. Se vuoi limitare l'accesso al server Samba solo dalla tua rete interna, decommenta le due righe seguenti e specifica le interfacce a cui collegarti:

/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 volta terminato, esegui il testparm utility per verificare la presenza di errori nel file di configurazione di Samba. Se non ci sono errori di sintassi vedrai Loaded services file OK.

Infine, riavvia i servizi Samba con:

sudo systemctl restart smbdsudo systemctl restart nmbd

Creazione di utenti Samba e struttura di directory #

Per una più facile manutenibilità e flessibilità invece di utilizzare le directory home standard (/home/user ) tutte le directory e i dati di Samba si troveranno nel /samba directory.

Per creare il /samba tipo di directory:

sudo mkdir /samba

Imposta la proprietà del gruppo su sambashare . Questo gruppo viene creato durante l'installazione di Samba, in seguito aggiungeremo tutti gli utenti Samba a questo gruppo.

sudo chgrp sambashare /samba

Samba utilizza utenti Linux e un sistema di autorizzazioni di gruppo, ma ha un proprio meccanismo di autenticazione separato dall'autenticazione standard di Linux. Creeremo gli utenti usando lo standard Linux useradd strumento e quindi impostare la password utente con smbpasswd utilità.

Come accennato nell'introduzione, creeremo un utente normale che avrà accesso alla sua condivisione di file privata e un account amministrativo con accesso in lettura e scrittura a tutte le condivisioni sul server Samba.

Creazione di utenti Samba #

Per creare un nuovo utente chiamato josh usa il seguente comando:

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

Il useradd le opzioni hanno i seguenti significati:

  • -M -non creare la home directory dell'utente. Creeremo manualmente questa directory.
  • -d /samba/josh - imposta la home directory dell'utente su /samba/josh .
  • -s /usr/sbin/nologin - disabilita l'accesso alla shell per questo utente.
  • -G sambashare - aggiungi l'utente a sambashare gruppo.

Crea la directory home dell'utente e imposta la proprietà della directory sull'utente josh e il gruppo sambashare :

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

Il comando seguente aggiungerà il bit setgid a /samba/josh directory in modo che i file appena creati in questa directory erediteranno il gruppo della directory padre. In questo modo, indipendentemente dall'utente che crea un nuovo file, il file avrà il proprietario del gruppo di sambashare . Ad esempio, se non imposti i permessi della directory su 2770 e il sadmin l'utente crea un nuovo file l'utente josh non sarà in grado di leggere/scrivere su questo file.

sudo chmod 2770 /samba/josh

Aggiungi il josh account utente al database Samba impostando la password utente:

sudo smbpasswd -a josh

Ti verrà chiesto di inserire e confermare la password utente.

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

Una volta impostata la password per abilitare l'account Samba, esegui:

sudo smbpasswd -e josh
Enabled user josh.

Per creare un altro utente, ripetere la stessa procedura di quando si crea l'utente josh .

Quindi, creiamo un utente e un gruppo sadmin . Tutti i membri di questo gruppo disporranno delle autorizzazioni amministrative. Successivamente, se desideri concedere autorizzazioni amministrative a un altro utente, aggiungi semplicemente quell'utente al sadmin gruppo.

Crea l'utente amministrativo digitando:

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

Il comando sopra creerà anche un gruppo sadmin e aggiungi l'utente a entrambi sadmin e sambashare gruppi.

Imposta una password e abilita l'utente:

sudo smbpasswd -a sadminsudo smbpasswd -e sadmin

Quindi, crea gli Users condividi directory:

sudo mkdir /samba/users

Imposta la proprietà della directory sull'utente sadmin e il gruppo sambashare :

sudo chown sadmin:sambashare /samba/users

Questa directory sarà accessibile da tutti gli utenti autenticati. Il seguente chmod Il comando dà accesso in scrittura/lettura ai membri di sambashare gruppo nel /samba/users directory:

sudo chmod 2770 /samba/users

Configurazione delle condivisioni Samba #

Apri il file di configurazione di Samba e aggiungi le sezioni:

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

Le opzioni hanno i seguenti significati:

  • [users] e [josh] - I nomi delle condivisioni che utilizzerai all'accesso.
  • path - Il percorso per la condivisione.
  • browseable - Se la condivisione deve essere elencata nell'elenco delle condivisioni disponibili. Impostando su no gli altri utenti non potranno vedere la condivisione.
  • read only - Se gli utenti specificati in valid users elenco possono scrivere a questa condivisione.
  • force create mode - Imposta le autorizzazioni per i file appena creati in questa condivisione.
  • force directory mode - Imposta le autorizzazioni per le directory appena create in questa condivisione.
  • valid users - Un elenco di utenti e gruppi autorizzati ad accedere alla condivisione. I gruppi sono preceduti da @ simbolo.

Per ulteriori informazioni sulle opzioni disponibili, vedere la pagina di documentazione del file di configurazione di Samba.

Al termine, riavvia i servizi Samba con:

sudo systemctl restart smbdsudo systemctl restart nmbd

Nelle sezioni seguenti, ti mostreremo come connetterti a una condivisione Samba da client Linux, macOS e Windows.

Connessione a una condivisione Samba da Linux #

Gli utenti Linux possono accedere alla condivisione samba dalla riga di comando, utilizzando il file manager o montare la condivisione Samba.

Utilizzo del client smbclient #

smbclient è uno strumento che ti permette di accedere a Samba dalla riga di comando. Il smbclient il pacchetto non è preinstallato sulla maggior parte delle distribuzioni Linux, quindi dovrai installarlo con il tuo gestore di pacchetti di distribuzione.

Per installare smbclient su Ubuntu e Debian eseguiti:

sudo apt install smbclient

Per installare smbclient su CentOS e Fedora eseguiti:

sudo yum install samba-client

La sintassi per accedere a una condivisione Samba è la seguente:

mbclient //samba_hostname_or_server_ip/share_name -U username

Ad esempio per connettersi a una condivisione denominata josh su un server Samba con indirizzo IP 192.168.121.118 come utente josh correresti:

smbclient //192.168.121.118/josh -U josh

Ti verrà chiesto di inserire la password utente.

Enter WORKGROUP\josh's password: 

Una volta inserita la password, verrai registrato nell'interfaccia della riga di comando di Samba.

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

Montaggio della condivisione Samba #

Per montare una condivisione Samba su Linux prima devi installare cifs-utils pacchetto.

Su Ubuntu e Debian eseguiti:

sudo apt install cifs-utils

Su CentOS e Fedora eseguiti:

sudo yum install cifs-utils

Quindi, crea un punto di montaggio:

sudo mkdir /mnt/smbmount

Monta la condivisione usando il seguente comando:

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

Ad esempio per montare una condivisione denominata josh su un server Samba con indirizzo IP 192.168.121.118 come utente josh al /mnt/smbmount punto di montaggio che eseguiresti:

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

Ti verrà chiesto di inserire la password utente.

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

Utilizzo della GUI #

File, il file manager predefinito in Gnome ha un'opzione integrata per accedere alle condivisioni Samba.

  1. Apri File e fai clic su "Altre posizioni" nella barra laterale.
  2. In "Connetti al server", inserisci l'indirizzo della condivisione Samba nel seguente formato smb://samba_hostname_or_server_ip/sharename .
  3. Fai clic su "Connetti" e apparirà la seguente schermata:
  4. Seleziona "Utente registrato", inserisci il nome utente e la password di Samba e fai clic su "Connetti".
  5. Verranno mostrati i file sul server Samba.

Connessione a una condivisione Samba da macOS #

In macOS puoi accedere alle condivisioni Samba dalla riga di comando o utilizzando il Finder del file manager di macOS predefinito. I passaggi seguenti mostrano come accedere alla condivisione utilizzando Finder.

  1. Apri "Finder", seleziona "Vai" e fai clic su "Connetti a".
  2. In "Connetti a", inserisci l'indirizzo della condivisione Samba nel seguente formato smb://samba_hostname_or_server_ip/sharename .
  3. Fai clic su "Connetti" e apparirà la seguente schermata:
  4. Seleziona "Utente registrato", inserisci il nome utente e la password di Samba e fai clic su "Connetti".
  5. Verranno mostrati i file sul server Samba.

Connessione a una condivisione Samba da Windows #

Gli utenti Windows hanno anche un'opzione per connettersi alla condivisione Samba sia dalla riga di comando che dalla GUI. I passaggi seguenti mostrano come accedere alla condivisione utilizzando Esplora file di Windows.

  1. Apri Esplora file e nel riquadro sinistro fai clic con il pulsante destro del mouse su "Questo PC".
  2. Seleziona "Scegli un percorso di rete personalizzato", quindi fai clic su "Avanti".
  3. In "Indirizzo Internet o di rete", inserisci l'indirizzo della condivisione Samba nel seguente formato \\samba_hostname_or_server_ip\sharename .
  4. Fai clic su "Avanti" e ti verrà richiesto di inserire le credenziali di accesso come mostrato di seguito:
  5. Nella finestra successiva puoi digitare un nome personalizzato per il percorso di rete. Quello predefinito verrà raccolto dal server Samba.
  6. Fai clic su "Avanti" per passare all'ultima schermata della procedura guidata di configurazione della connessione.
  7. Fai clic su "Fine" e verranno mostrati i file sul server Samba.

Ubuntu
  1. Come installare e configurare Redis su Ubuntu 18.04

  2. Come installare e configurare Redmine su Ubuntu 18.04

  3. Come installare e configurare Redis su Ubuntu 20.04

  4. Come installare e configurare Jenkins su Ubuntu 20.04

  5. Come installare e configurare samba su Ubuntu Linux?

Come installare e configurare Neo4j su Ubuntu 20.04

Come installare e configurare Samba su Ubuntu

Come installare e configurare Ubuntu SDK in Ubuntu 16.04 e 14.04

Come installare e configurare PostgreSQL su Ubuntu

Come installare e configurare Hadoop su Ubuntu 20.04

Come installare e configurare Samba su Ubuntu 20.04