Obiettivo
L'obiettivo è eseguire una configurazione di base del server Samba su Debian 9 Stretch Linux per fornire l'accesso alle condivisioni Samba tramite la macchina client MS Windows.
Sistema operativo e versioni software
- Sistema operativo: – Debian 9 Allunga
- Software: – Samba 4.5.8-Debian
Requisiti
Sarà richiesto un accesso privilegiato al tuo sistema Debian.
Difficoltà
FACILE
Convenzioni
- # – richiede che i comandi linux dati vengano eseguiti con i privilegi di root direttamente come utente root o usando
sudo
comando - $ – richiede che i comandi linux dati vengano eseguiti come un normale utente non privilegiato
Scenario
La procedura di configurazione seguente presuppone uno scenario e requisiti preconfigurati seguenti:
- Il server e il client MS Windows si trovano sulla stessa rete e nessun firewall blocca le comunicazioni tra i due
- Il client MS Windows può risolvere il server samba tramite il nome host
samba-server
- Il dominio del gruppo di lavoro del client MS Windows è
WORKGROUP
Istruzioni
Installazione
Iniziamo dall'installazione del server Samba:
# apt install samba
Inoltre, a scopo di test, si consiglia anche di installare il client samba:
# apt install smbclient
Il server Samba dovrebbe ora essere attivo e funzionante sul tuo sistema:
# systemctl status smbd ● smbd.service - Samba SMB Daemon Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2017-06-13 10:35:34 AEST; 3min 32s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 1654 (smbd) Status: "smbd: ready to serve connections..." CGroup: /system.slice/smbd.service ├─1654 /usr/sbin/smbd ├─1655 /usr/sbin/smbd ├─1656 /usr/sbin/smbd └─1659 /usr/sbin/smbd
Configurazione Samba predefinita
Il file di configurazione principale di Samba si chiama /etc/samba/smb.conf
. Prima di iniziare a modificare smb.conf
config, eseguiamo un backup del file di configurazione originale ed estraiamo le righe rilevanti per la configurazione corrente in un nuovo smb.conf
file:
# cp /etc/samba/smb.conf /etc/samba/smb.conf_backup # grep -v -E "^#|^;" /etc/samba/smb.conf_backup | grep . > /etc/samba/smb.conf
Il tuo nuovo /etc/samba/smb.conf
ora dovrebbe contenere:
# cat /etc/samba/smb.conf [global] workgroup = WORKGROUP dns proxy = no log file = /var/log/samba/log.%m max log size = 1000 syslog = 0 panic action = /usr/share/samba/panic-action %d server role = standalone server passdb backend = tdbsam obey pam restrictions = yes unix password sync = yes passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . pam password change = yes map to guest = bad user usershare allow guests = yes [homes] comment = Home Directories browseable = no read only = yes create mask = 0700 directory mask = 0700 valid users = %S [printers] comment = All Printers browseable = no path = /var/spool/samba printable = yes guest ok = no read only = yes create mask = 0700 [print$] comment = Printer Drivers path = /var/lib/samba/printers browseable = yes read only = yes guest ok = no
Riavvia il tuo server samba e usa il client SMB per confermare tutti i gruppi samba esportati:
# systemctl restart smbd # smbclient -L localhost WARNING: The "syslog" option is deprecated Enter root's password: Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.5.8-Debian] Sharename Type Comment --------- ---- ------- print$ Disk Printer Drivers IPC$ IPC IPC Service (Samba 4.5.8-Debian) Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.5.8-Debian] Server Comment --------- ------- LASERPRINTER LINUXCONFIG Samba 4.5.8-Debian Workgroup Master --------- ------- WORKGROUP LINUXCONFIG
Aggiungi utenti
Samba ha un proprio sistema di gestione degli utenti. Tuttavia, qualsiasi utente esistente nell'elenco utenti di samba deve esistere anche all'interno di /etc/passwd
file. Per questo motivo, crea un nuovo utente utilizzando useradd
comando prima di creare qualsiasi nuovo utente Samba. Una volta che il tuo nuovo utente di sistema, ad es. linuxconfig
esce, usa smbpasswd
comando per creare un nuovo utente Samba:
# smbpasswd -a linuxconfig New SMB password:
Condivisione delle directory principali di Samba
Per impostazione predefinita, tutte le home directory vengono esportate in sola lettura e non sono browseable
. Per modificare queste impostazioni di configurazione predefinite, cambia le homes
correnti condividi la definizione con:
[homes] comment = Home Directories browseable = yes read only = no create mask = 0700 directory mask = 0700 valid users = %S
Ogni volta che apporti una modifica al tuo /etc/samba/smb.conf
file di configurazione non dimenticare di riavviare il demone del server samba:
# systemctl restart smbd
Condivisione anonima pubblica Samba
La seguente definizione Samba consentirà a qualsiasi utente di leggere e scrivere dati nella condivisione Samba in /var/samba/
directory. Innanzitutto, crea una nuova directory e rendila accessibile a chiunque:
# mkdir /var/samba # chmod 777 /var/samba/
Quindi, aggiungi una nuova definizione di condivisione samba all'interno del tuo /etc/samba/smb.conf
File di configurazione di Samba:
[public] comment = public anonymous access path = /var/samba/ browsable =yes create mask = 0660 directory mask = 0771 writable = yes guest ok = yes
Riavvia il tuo demone del server samba:
# systemctl restart smbd
Monta condivisioni Samba
Ora siamo pronti a rivolgere la nostra attenzione alla macchina MS Windows e alla mappa di rete delle nostre nuove directory di condivisione Samba. Inizia elencando tutte le condivisioni disponibili tramite \\\samba-server
esecuzione del comando:
Se tutto è andato bene dovresti vedere l'elenco di tutte le condivisioni samba sfogliabili:
Successivamente, mappa qualsiasi directory condivisa facendo clic con il pulsante destro del mouse sulla condivisione e selezionando un Map Network Drive...
opzione. Spuntare Connect using different credentials
opzione e terminare la mappatura dell'unità di rete fornendo le credenziali utente create nei passaggi precedenti:
Appendice
Elenca gli utenti di Samba:
# pdbedit -w -L
Elimina utente Samba:
# pdbedit -x -u username