# Samba (software)

In informatica Samba è un progetto libero che fornisce servizi di condivisione di file e stampanti a client SMB/CIFS. Samba è liberamente disponibile, al contrario di altre implementazioni SMB/CIFS, e permette di ottenere interoperabilità tra Unix, Linux, macOS e Windows.

## Descrizione
### Storia

Originariamente sviluppato per UNIX da Andrew Tridgell nell'Università Nazionale Australiana, il nome "samba" deriva dall'inserzione di 2 vocali nel nome del protocollo usato da Microsoft "SMB" (Server Message Block). Originariamente si chiamava smbserver, ma fu cambiato a causa dell'azienda "Syntax" che vendeva un prodotto chiamato TotalNet advanced Server e possedeva il marchio SMBserver.

### Caratteristiche

Samba è un software che gira su piattaforme che non siano Microsoft Windows, per esempio, UNIX, Linux, IBM System/390, OpenVMS e altri sistemi operativi. Samba utilizza il protocollo TCP/IP utilizzando i servizi offerti sul server ospite. Quando opportunamente configurato, permette di interagire con server Microsoft Windows come se fosse un file server e un print server oppure far parte di un dominio, tipicamente implementato su un dominio Windows Server. Inoltre, può svolgere funzioni simili ad Active Directory di Microsoft su qualsiasi piattaforma non Microsoft.
L'uso principale di Samba, in ambito multi sistema o di rete, è quello di far interagire Windows con altri sistemi operativi non Microsoft, fornendo così una piattaforma comune per l'impiego condiviso di risorse (server, client, gruppi, utenti, dischi, cartelle, stampanti e altri dispositivi hardware, ecc).
Samba, quindi, è un pacchetto software che dà all'amministratore flessibilità e libertà in termini di installazione, configurazione, e scelta di sistema operativo e hardware. Grazie a questa ampia offerta, Samba è diventato molto popolare, e continua ad esserlo, ogni anno sempre di più fin dal suo rilascio nel 1992.
Samba configura share (condivisioni) per le directory UNIX scelte (incluse le sottodirectory). Queste appaiono agli utenti di Microsoft Windows come normali cartelle di Windows accessibili via rete. Gli utenti Unix possono effettuare il mount delle directory condivise direttamente nell'albero del filesystem o, in alternativa, è possibile usare una utility, smbclient installata con samba per leggere le directory condivise mediante un'interfaccia simile a quella del programma FTP a riga di comando.
Ogni directory può avere differenti privilegi di accesso sovrapposti ai normali privilegi UNIX. Per esempio: le home directory potrebbero essere accessibili in lettura/scrittura a tutti gli utenti riconosciuti dal sistema permettendo ad ogni utente di accedere ai propri file. Comunque potrebbero non avere l'accesso ai file degli altri utenti a meno che questo permesso non sia normalmente previsto. Notare che /etc/samba/netlogon, tipicamente distribuita come condivisione in sola lettura, è la directory di login per gli script di login dell'utente.
La configurazione di Samba si ottiene modificando un singolo file (di solito presente come /etc/smb.conf o /etc/samba/smb.conf). Samba può fornire anche script per il logon dell'utente e implementazione di policy di gruppo attraverso poledit.
Dalla release 4, Samba è in grado di svolgere le funzioni di un domain controller (DC), integrandosi anche con Active Directory (AD) di Windows Server. Inoltre, può comportarsi come un Primary Domain Controller (PDC). Comunque Samba rimane sostanzialmente uno strumento di interconnessione di un dominio Microsoft con tecnologie non Microsoft offrendo servizi di condivisione di risorse di rete: pur potendo svolgere alcuni semplici compiti di tipo AD (esempio l'autenticazione di un client e la sua registrazione su dominio al login) è da chiarire che non è attualmente in grado di implementare interamente la complessità funzionale dell'architettura AD di Microsoft.