Finestre.  Virus.  I Quaderni.  Internet.  ufficio.  Utilità.  Autisti

Samba- un programma che ti permette di accedere unità di rete su vari sistemi operativi tramite protocollo SMB/CIFS. Ha parti client e server. È libero Software, rilasciato sotto licenza GPL.

Samba funziona sulla maggior parte dei sistemi simili a Unix come GNU/Linux, Solaris compatibile con POSIX e Mac OS X Server, varie varianti BSD, OS /2, Windows. Samba incluso in quasi tutte le distribuzioni GNU/Linux, incluso, ovviamente, Ubuntu.

Installazione

Per creare una cartella condivisa in Ubuntu Desktop basta fare clic clic destro fare clic sulla cartella e selezionare la voce di menu "Pubblica cartella". Nessuno file di configurazione non è necessario modificare. Tutto quanto descritto di seguito si applica solo a impostazione manuale, ad esempio, nel caso della creazione di un file server.

Per installare basta aprire un terminale e digitare:

sudo apt-get install samba

L'app verrà scaricata e installata automaticamente.

Collocamento

Facciamolo usando il terminale backup file di configurazione iniziale:

sudo cp /etc/samba/smb.conf(,.bak)

Ora puoi modificare il file delle impostazioni /etc/samba/smb.conf, per fare ciò, aprilo in qualsiasi editor di testo con diritti di superutente. Ad esempio, in questo modo:

sudo nano /etc/samba/smb.conf

Quanto scritto di seguito è generalmente solo uno specifico caso d'uso di Samba e in un numero enorme di casi tutto è configurato in modo assolutamente sbagliato. L'articolo deve essere corretto, concentrandosi sulle capacità di Samba e non solo sull'utilizzo di questo programma come archivio di file con autorizzazione locale. È meglio estrarre un esempio con l'archiviazione dei file in un articolo dettagliato separato.

Un esempio di configurazione di Samba come file server autonomo con autorizzazione:

; Impostazioni globali del server; Impostazioni generali del server ; Il nome del computer che verrà visualizzato nell'ambiente di rete netbios name = main-server server string = ; Gruppo di lavoro client workgroup = WORKGROUP versione annuncio = 5.0 opzioni socket = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192 passdb backend = tdbsam security = utente null passwords = true ; Nome utente alias file username map = /etc/samba/smbusers name resolve order = hosts vince bcast ; wins support è impostato su yes se il tuo Samba nmbd(8) è un server WINS. Non impostare questa opzione su yes a meno che tu non abbia più sottoreti e non desideri che nmbd funga da server WINS. Non impostare mai questa opzione su yes su più di una macchina all'interno della stessa subnet. vince supporto = no ; Stampa supporto stampante = CUPS printcap name = CUPS ; Log file di log = /var/log/samba/log.%m syslog = 0 solo syslog = no ; L'impostazione dell'associazione alle interfacce su cui ascoltare, se non specificata, è in ascolto su tutte le interfacce; interfacce = lo, eth0 ; bind interfacce solo = true ; ; ; percorso = /var/lib/samba/printers ; sfogliabile = sì ; ospite ok = si ; sola lettura = sì ; scrivi lista = root ; crea maschera = 0664 ; maschera directory = 0775 ; ; ; percorso = /tmp ; stampabile = sì ; ospite ok = si ; sfogliabile = no ; ; ;path = /media/cdrom ;browseable = yes ;read only = yes ;guest ok = yes ; Shara disco rigido; Il nome delle palline, visibile ai clienti; Percorso del percorso del disco condiviso = /media/sda1 ; È possibile navigare sfogliabile = sì sola lettura = no ospite ok = no maschera di creazione = 0644 maschera directory = 0755 ; Collegamento a un nome utente o gruppo specifico, nomi separati da uno spazio; forza utente = utente1 utente2 ; forza gruppo = gruppo1 gruppo2 ; Un altro HDD, simile al precedente path = /media/sde1 browseable = yes read only = no guest ok = no create mask = 0644 directory mask = 0755

Ora dobbiamo occuparci degli utenti.

Samba utilizza utenti che sono già nel sistema, prendiamo ad esempio il nome utente, diciamo che è già nel sistema, devi aggiungerlo al database SMB e assegnare una password per accedere alle condivisioni, facciamolo con il comando:

Smbpasswd -un utente

Ti verrà richiesto di inserire una password, l'utente verrà aggiunto al database, ora devi abilitare questo utente.

Smbpasswd -e utente

Successivamente, creiamo un alias per il nome utente dell'utente per facilitare l'accesso Macchine Windows su cui, ad esempio, abbiamo un utente di nome Admin, per questo creeremo e modificheremo il file /etc/samba/smbusers:

sudo touch /etc/samba/smbusers sudo gedit /etc/samba/smbusers

Scrivi un paio di righe nel file

# Unix_name = SMB_name1 SMB_name2 utente = Admin

Questo completa la configurazione, riavvia Samba.

Puoi installare la GUI più semplice per Samba con il comando:

sudo apt-get install system-config-samba

Si lancia con il comando:

sudo system-config-samba

Scrive tutte le modifiche nel file di configurazione di samba.

Per l'amministrazione remota di Samba come interfaccia web per Samba è perfetto

Linux è un ottimo sistema operativo, ma non possiamo allontanarci da Windows e lo è anche da noi. Le finestre ci circonderanno sempre, a casa, rete aziendale o internet cafè. Dobbiamo costantemente scambiare documenti con computer Windows, dopotutto non tutti gli utenti preferiscono lavorare su Linux. Avere un server a tua disposizione Linux , in ogni caso, sarà necessario interagire con computer Windows, quindi parleremo Connessione linux alla rete Microsoft.

Installazione di Samba

Per installare Samba, dobbiamo installare i pacchetti samba e samba-client. Si consiglia inoltre di installare il pacchetto smbfs. Inoltre, il sistema aggiornerà il pacchetto samba-common, che potrebbe essere già installato sul sistema. Tutte le mie manipolazioni verranno eseguite ubuntu 10.04, la principale differenza rispetto alle altre distribuzioni è il metodo di installazione. Per ubuntu attraverso la console in questo modo:

$ sudo apt -get install samba

Oppure usando il gestore di pacchetti Synaptic, cosa che ho fatto, questa opzione si è rivelata più conveniente per me, dato che potevo selezionare dall'elenco i pacchetti di cui avevo bisogno, questi erano:

    samba

    smbclient

    samba-comune

Se ne hai mai usato un altro Distribuzione linux, allora probabilmente conosci il programma LinNeighbourhood. Questo programma di grafica, che consente di visualizzare le risorse di rete di Windows. Non è necessario in Ubuntu. Innanzitutto, gli strumenti stock di GNOME ti consentono di navigare nelle reti Windows. E in secondo luogo, per motivi di interesse, il programma LinNeighbourhood è stato installato da uno dei repository di Ubuntu. Si è scoperto che questo programma, trovato da Synaptic, non è affatto utilizzabile (problemi con la localizzazione). Bene, va bene, ha senso capire se ci sono eccellenti mezzi standard che stanno già funzionando.

Configurazione di base di Samba

A questo punto, assumeremo che l'utilità sia installata. Il file di configurazione principale di Samba è /etc/samba/smb.conf. Devi aprirlo e modificare diversi parametri. Il primo è gruppo di lavoro - specifica il nome (a tua scelta) del gruppo di lavoro o dominio NT:

GRUPPO DI LAVORO = MyHomeGroup

Puoi anche impostare il parametro del commento: questa è una descrizione del tuo computer:

comment = Il mio computer Linux

Imposta l'opzione di sicurezza. Se la rete è un client/server, è necessario selezionare parametro del server, e serete peer-to-peer (ovvero una rete senza un server dedicato), è necessario selezionare l'utente o condividere:

sicurezza = condivisione

Nome ospite account installare in questo modo:

account ospite = ospite

È inoltre necessario impostare le codifiche:

pagina codice cliente = 866

set di caratteri = utf8

Per velocizzare l'esecuzione di Samba, imposta le seguenti opzioni:

opzioni socket = TCP_NO RITARDO SO_RCVBUF=8192 SO_SNDBUF=8192

proxy dns=no

Il parametro interfaces specifica le interfacce su cui deve essere eseguito il servizio Samba. È necessario specificare quelle interfacce che collegano la nostra macchina con le reti Windows:

interfacce = 192.168.0.22/24

Configurazione delle risorse condivise

Ora resta da configurare le risorse che vogliamo condividere, questo è il [ pubblico].

# cartella condivisa

commento = elenco pubblico

# sentiero

percorso = /var/samba

# non solo letto

sola lettura = no

# consenti la scrittura

scrivibile=sì

# consenti l'accesso ospite

ospite ok = sì

# consente di visualizzare il contenuto della directory

sfogliabile=sì

In questo caso, la directory /var/samba sarà la risorsa condivisa del nostro computer (deve essere creata, poiché non esiste una directory di questo tipo nel sistema per impostazione predefinita). Gli altri utenti potranno scrivere i propri file al suo interno (read only=no, writeable=yes), naturalmente potranno leggerli (browseable=yes). Non è necessario controllare il nome utente e la password per accedere alla risorsa (guest ok=yes) - viene utilizzato il cosiddetto accesso ospite. Il commento "Directory pubblica" verrà visto da altri utenti della rete Windows durante la visualizzazione delle risorse del nostro computer.

Se c'è bisogno di fornire accesso generale("condividi") nelle home directory degli utenti, quindi vai alla sezione ;. Rimuovere il commento da tutte le righe commentate con un punto e virgola prima della riga;. T . e. dovrebbe ottenere quanto segue:

commento = Home Directory

navigabile = no

utenti validi = %S

scrivibile = no

crea maschera = 0600

maschera di directory = 0700

Ora le directory degli utenti non saranno visibili nell'elenco delle condivisioni, puoi accedervi da \\server\nome utente . Ad esempio, \\server\petya. Se desideri che le risorse utente siano consultabili, imposta il parametro browseable su yes:

sfogliabile=sì

Dopo tutte le modifiche, salva il file di configurazione e avvia (o riavvia - riavvia) Samba:

$ sudo /etc/init.d/samba start

Visualizzazione delle risorse di rete di Windows

Puoi visualizzare le risorse di rete di Windows utilizzando il programma smbclient, ma funziona in modalità testo, quindi non è molto comodo da usare. È molto più conveniente utilizzare il browser di file per visualizzare le risorse di rete. Puoi farlo usando il menu. Transizione | Connetti al server...

Segreti per l'ottimizzazione di Samba

Ora parliamo di come far funzionare Samba un po' più velocemente. Se apri il file di configurazione smb.conf, troverai l'opzione collegamenti larghi al suo interno. Non installarlo mai NO ! Quindi ridurremo significativamente le prestazioni di Samba. Al contrario, è necessario impostarlo su sì (se il parametro dei collegamenti larghi è stato disabilitato in precedenza), il che aumenterà notevolmente le prestazioni.

L'opzione collegamenti larghi determina come Samba segue i collegamenti simbolici. Se wide links=no allora Samba non seguirà i link simbolici al di fuori dell'area esportata. Samba prima segue il collegamento simbolico e quindi esegue una cosiddetta ricerca del percorso di directory (una chiamata di sistema che determina dove termina il collegamento). Questa operazione implica 6 chiamate di sistema in più rispetto a wide links=yes. Considerando che ci sono molte di queste operazioni, la disabilitazione dei collegamenti larghi riduce le prestazioni di Samba di circa il 30%.

Samba è un software per la condivisione e la condivisione di file tra computer che eseguono Linux/Unix e un sistema operativo. Sistema Windows. Samba è costituito da parti client e server. Il lato client consente l'accesso a cartelle di rete e le risorse di Windows e la sala server, a sua volta, condivide la cartella Ubuntu con altre macchine, incluso Windows.

Questo breve tutorial coprirà la configurazione più semplice di Samba Ubuntu 18.04, nonché come condividere una cartella Ubuntu con diversi livelli di privilegi.

Creeremo tre cartelle pubbliche con diversi livelli di autorizzazione. Una cartella con accesso anonimo, con accesso per gli utenti appartenenti a un gruppo specifico e accesso solo per un utente specifico.

Entrambe le macchine Linux e Widnows saranno in grado di accedere alle cartelle condivise in Ubuntu utilizzando qualsiasi programma che funzioni tramite il protocollo SMB.

Affinché tutto funzioni correttamente, tutte le macchine devono trovarsi nello stesso gruppo di lavoro specificato sul server Samba. Per impostazione predefinita su Windows, Linux e MacOS, il gruppo di lavoro si chiama Gruppo di lavoro. Per scoprire quale gruppo di lavoro è utilizzato in Windows, apri riga di comando(Win + R, quindi cmd) ed esegui il seguente comando:

workstation di configurazione di rete

Vediamo il parametro di cui abbiamo bisogno nella riga Dominio postazione di lavoro . Questo è il gruppo di lavoro.

Ora, se un computer con un server Samba sulla tua rete ha un indirizzo IP permanente, è consigliabile inserirlo file hosts. Per fare ciò, esegui il prompt dei comandi come amministratore:

Ed esegui il comando:

blocco note C:\Windows\System32\drivers\etc\hosts

Nel file che si apre, aggiungi una riga con l'indirizzo IP del computer su cui verrà installato Samba:

192.168.0.1 srvr1.dominio.com srvr1

Ora possiamo passare alla domanda su come condividere la cartella Ubuntu.

Configurazione di Samba su Ubuntu 16.04

Iniziamo, come al solito, con l'installazione. L'installazione di Samba Ubuntu insieme a tutti i componenti necessari viene eseguita con il comando:

sudo apt-get install -y samba samba-common python-glade2 system-config-samba

Quando tutto è installato, puoi procedere alla configurazione. Innanzitutto, esegui il backup del file di configurazione Samba originale:

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

Dopo aver creato un backup, crea il tuo file di configurazione con questo comando:

sudo vi /etc/samba/smb.conf

Per prima cosa, specifichiamo le impostazioni globali del file server. Per fare ciò, inserire le seguenti righe nel file:


gruppo di lavoro = GRUPPO DI LAVORO

nome netbios = Condivisione Ubuntu
proxy dns=no

dimensione massima del registro = 1000
back-end passdb = tdbsam
sincronizzazione password unix=sì

pam cambio password = sì
map to guest = cattivo utente
usershare consenti ospiti = sì

Diamo un'occhiata più da vicino a cosa significano queste righe.

  • gruppo di lavoro- il gruppo di lavoro, come già detto, dovrebbe essere lo stesso su tutte le macchine
  • nome-netbios- nome del computer che verrà visualizzato in Windows;
  • file di registro- l'indirizzo del file in cui verranno memorizzati i messaggi di errore e altre informazioni;
  • sicurezza- eseguire l'autenticazione a livello utente per impostazione predefinita;
  • ordine di risoluzione del nome- ordine di risoluzione degli indirizzi IP per nome NetBIOS. bcast significa inviare a rete locale richiesta di trasmissione. Se tutti i computer tra i quali è pianificata l'interazione si trovano nella stessa rete, questa opzione è ottimale;
  • back-end passdb- modalità di memorizzazione delle password degli utenti;
  • sincronizzazione password unix- sincronizzazione delle password degli utenti samba con le password Unix locali;
  • mappa all'ospite- Specifica quando all'utente verrà concesso l'accesso guest. Sono disponibili tre valori: Mai- Mai, cattivo utente- quando tale utente non esiste, password errata- quando la password viene inserita in modo errato,

Quando hai finito di creare il file di configurazione, passiamo alla domanda su come condividere la cartella Ubuntu per Windows.

Condivisione delle cartelle di Ubuntu

Per prima cosa, creiamo una cartella pubblica accessibile a tutti. Cioè, con accesso anonimo, senza autorizzazione samba.

Crea una cartella a cui apriremo l'accesso, ad esempio:

sudo mkdir -p /samba/allaccess

Dopo aver creato la cartella, è necessario creare le autorizzazioni corrette per essa. I seguenti comandi consentono l'accesso alla cartella a tutti e rendono il proprietario nessuno:

cd/samba
sudo chmod -R 0755 allaccess
sudo chown -R nessuno:nogroup allaccess/

Il prossimo passo è descrivere la cartella allaccess nel file di configurazione di samba:


percorso=/samba/allaccess
navigabile = sì
scrivibile=sì
ospite ok = sì
sola lettura = no

Il tuo file di configurazione dovrebbe ora assomigliare a questo:


gruppo di lavoro = GRUPPO DI LAVORO
stringa server = %h server (Samba, Ubuntu)
nome netbios = Condivisione Ubuntu
proxy dns=no
file di registro = /var/log/samba/log.%m
dimensione massima del registro = 1000
back-end passdb = tdbsam
sincronizzazione password unix=sì
programma passwd = /usr/bin/passwd %u
pam cambio password = sì
map to guest = cattivo utente
usershare consenti ospiti = sì
#==============
percorso=/samba/allaccess
navigabile = sì
scrivibile=sì
ospite ok = sì
sola lettura = no

Diamo un'occhiata più da vicino alle opzioni che sono state utilizzate qui:

  • sentiero- percorso della cartella da condividere;
  • sfogliabile- se la cartella verrà visualizzata nell'elenco delle condivisioni disponibili;
  • scrivibile- se la cartella sarà scrivibile;
  • sola lettura- la cartella è di sola lettura;
  • ospite ok, pubblico- se sarà consentito l'accesso degli ospiti;
  • unico ospite- se impostato su sì, la cartella sarà disponibile solo per gli ospiti;
  • gli host lo consentono- indirizzi ip da cui è possibile accedere a questo server;
  • utenti validi- per impostazione predefinita, tutti gli utenti possono accedere, se passi un elenco di utenti in questo parametro, solo loro possono accedere;
  • creare maschera- maschera dei diritti per file creati.

Per applicare le modifiche, riavvia il server Samba:

sudo systemctl riavvia samba

La configurazione di Samba Ubuntu 16.04 per l'accesso anonimo è ora completa. Ora puoi verificare la disponibilità cartella condivisa allaccess da Windows, per fare ciò, premi Win + R ed esegui:

\\srvr1\allaccess

Vedrai la nostra cartella. Se non lo vedi, controlla di nuovo la configurazione. È possibile accedere alla cartella senza autorizzazione samba. La configurazione delle condivisioni Samba con accesso senza autorizzazione è completata.

Puoi anche connetterti a questo server da Linux usando Nautilus, basta digitare l'indirizzo smb://ip del server, sotto altri luoghi:

Condivisione sicura delle cartelle di Ubuntu

Per condividere una cartella per windows ubuntu, a cui avranno accesso solo gli utenti di un determinato gruppo, creeremo una cartella separata e la descriveremo nel file di configurazione di Samba in Ubuntu.

Per prima cosa creiamo una cartella:

sudo mkdir -p /samba/allaccess/secured

Crea un gruppo:

sudo addgroup securegroup

Impostazione dei diritti:

cd /samba/allaccess
$ sudo chown -R richard:gruppo protetto protetto
$ sudo chmod -R 0770 protetto/

L'ultimo passaggio consiste nell'aggiungere le impostazioni al file di configurazione di samba:

sudo vi /etc/samba/smb.conf


percorso=/samba/allaccess/protetto
utenti validi = @securedgroup
ospite ok = no
scrivibile=sì
navigabile = sì

Riavvia il server Samba. Ora solo gli utenti del gruppo securegroup possono accedere alla cartella condivisa in Ubuntu.

Per testare come funziona, aggiungiamo l'utente richard al nostro gruppo:

sudo usermod -a -G securegroup richard

Il file di configurazione principale per Samba è /etc/samba/smb.conf. Il file di configurazione iniziale ha una quantità significativa di commenti per documentare le varie direttive di configurazione.

Non tutte le opzioni possibili sono abilitate nel file delle impostazioni predefinite. Consulta la guida uomo smb.conf o la raccolta di domande frequenti su Samba per maggiori dettagli.

1. Per prima cosa modifica le seguenti coppie chiave/valore nella sezione File /etc/samba/smb.conf:

Gruppo di lavoro=ESEMPIO ... sicurezza=utente

Parametro sicurezzaè significativamente inferiore nella sezione ed è commentato per impostazione predefinita. Sostituisci anche ESEMPIO a qualcosa di più appropriato per il tuo ambiente.

2. Crea una nuova sezione alla fine del file o decommenta uno degli esempi per la directory che vuoi condividere:

Commento = Ubuntu File Server Condividi percorso = /srv/samba/share browsable = sì guest ok = sì sola lettura = no maschera di creazione = 0755

    commento: una breve descrizione della risorsa condivisa. Usato per comodità.

    sentiero: percorso della directory condivisa.

    Questo esempio usa /srv/samba/sharename perché, secondo il File System Hierarchy Standard (FHS), la directory /srv è dove dovrebbero risiedere tutti i dati relativi a questo sito. Tecnicamente, una condivisione Samba può essere posizionata ovunque nel file system dove limiti di file accesso, ma si consiglia di seguire gli standard.

    sfogliabile: consente ai client Windows di visualizzare il contenuto di una directory condivisa utilizzando Windows Explorer.

    ospite va bene: consente ai client di connettersi alla risorsa condivisa senza specificare una password.

    sola lettura: Specifica se la risorsa è di sola lettura o di sola scrittura. I privilegi di scrittura sono disponibili solo quando specificati NO, Come mostrato in questo esempio. Se il valore , l'accesso alla risorsa sarà di sola lettura.

    creare maschera: determina quali autorizzazioni verranno impostate per i nuovi file creati.

3. Ora che Samba è configurato, devi creare una directory e impostarne le autorizzazioni. Digita nel terminale:

sudo mkdir -p /srv/samba/share sudo chown nessuno.nogroup /srv/samba/share/

parametro -P dice a mkdir di creare l'intero albero di directory se non esiste.

4. Infine, riavvia i servizi samba per applicare le nuove impostazioni:

sudo restart smbd sudo restart nmbd

Ora puoi trovare file Ubuntu server utilizzando Cliente Windows e sfoglia le sue directory condivise. Se il tuo client non mostra automaticamente le tue condivisioni, prova ad accedere al tuo server tramite il suo indirizzo IP, ad esempio \\192.168.1.1, da una finestra di Windows Explorer. Per verificare che tutto funzioni, prova a creare una directory all'interno della tua condivisione da Windows.

Per creare condivisioni aggiuntive, crea una nuova sezione in /etc/samba/smb.conf e riavvia Samba. Assicurati solo che la directory condivisa sia stata creata e abbia le autorizzazioni corrette.

Risorsa condivisa "" e modo /srv/samba/condividi sono solo esempi. Imposta il nome della risorsa e il nome della directory in modo che corrispondano al tuo ambiente. È una buona idea utilizzare il nome della directory della risorsa nel file system come nome della risorsa. In altre parole, la risorsa può essere specificata come per la directory /srv/samba/qa.

Samba è un programma che consente di accedere alle unità di rete su vari sistemi operativi utilizzando il protocollo SMB/CIFS. Ha parti client e server. È un software gratuito, rilasciato sotto licenza GPL.
Samba funziona sulla maggior parte dei sistemi simili a Unix come GNU/Linux, Solaris compatibile con POSIX e Mac OS X Server, su varie varianti BSD, su OS/2, Windows. Samba è incluso in quasi tutte le distribuzioni GNU/Linux, incluso, ovviamente, Ubuntu.
Installazione

Per creare una cartella condivisa in Ubuntu Desktop, fai clic con il pulsante destro del mouse sulla cartella e seleziona la voce di menu "Condividi cartella". Non è necessario modificare alcun file di configurazione. Tutto quanto descritto di seguito si applica solo alla configurazione manuale, ad esempio nel caso di creazione di un file server.
Per installare basta aprire un terminale e digitare:

sudo apt-get install samba

L'app verrà scaricata e installata automaticamente.

Collocamento

Usando il terminale, fai una copia di backup del file di configurazione iniziale:

sudo cp /etc/samba/smb.conf(,.bak)

Ora puoi modificare il file delle impostazioni /etc/samba/smb.conf, per fare ciò, aprilo in qualsiasi editor di testo con diritti di superutente. Ad esempio, in questo modo:

Sudo nano /etc/samba/smb.conf Un ​​esempio di configurazione di Samba come file server autonomo con autorizzazione: ; Impostazioni globali del server; Impostazioni generali del server ; Il nome del computer che verrà visualizzato nell'ambiente di rete netbios name = main-server server string = ; Client del gruppo di lavoro workgroup = WORKGROUP versione annuncio = 5.0 opzioni socket = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192 passdb backend = tdbsam security = utente null passwords = true ; Nome utente alias file username map = /etc/samba/smbusers name resolve order = hosts vince bcast ; wins support è impostato su yes se il tuo Samba nmbd(8) è un server WINS. Non impostare questa opzione su yes a meno che tu non abbia più sottoreti e non desideri che nmbd funga da server WINS. Non impostare mai questa opzione su yes su più di una macchina all'interno della stessa sottorete. vince supporto = no ; Stampa supporto stampante = CUPS printcap name = CUPS ; Log file di log = /var/log/samba/log.%m syslog = 0 solo syslog = no ; L'impostazione dell'associazione alle interfacce su cui ascoltare, se non specificata, è in ascolto su tutte le interfacce; interfacce = lo, eth0 ; bind interfacce solo = true ; ; ; percorso = /var/lib/samba/printers ; sfogliabile = sì ; ospite ok = si ; sola lettura = sì ; scrivi lista = root ; crea maschera = 0664 ; maschera directory = 0775 ; ; ; percorso = /tmp ; stampabile = sì ; ospite ok = si ; sfogliabile = no ; ; ;path = /media/cdrom ;browseable = yes ;read only = yes ;guest ok = yes ; Palla disco rigido; Il nome delle palline, visibile ai clienti; Percorso del percorso del disco condiviso = /media/sda1 ; È possibile navigare sfogliabile = sì sola lettura = no ospite ok = no maschera di creazione = 0644 maschera directory = 0755 ; Collegamento a un nome utente o gruppo specifico, nomi separati da uno spazio; forza utente = utente1 utente2 ; forza gruppo = gruppo1 gruppo2 ; Un altro disco rigido, simile a quello precedente path = /media/sde1 browseable = yes read only = no guest ok = no create mask = 0644 directory mask = 0755

Ora dobbiamo occuparci degli utenti.

Samba utilizza utenti che sono già nel sistema, prendiamo ad esempio il nome utente, diciamo che è già nel sistema, devi aggiungerlo al database SMB e assegnare una password per accedere alle condivisioni, facciamolo con il comando:

Smbpasswd -un utente

Ti verrà richiesto di inserire una password, l'utente verrà aggiunto al database, ora devi abilitare questo utente.

Smbpasswd -e utente

Successivamente, creeremo un alias per il nome utente utente per facilitare l'accesso dalla macchina Windows su cui abbiamo, ad esempio, un utente denominato Admin, per questo creeremo e modificheremo il file /etc/samba/smbusers:

sudo touch /etc/samba/smbusers sudo gedit /etc/samba/smbusers

Scrivi un paio di righe nel file

# Unix_name = SMB_name1 SMB_name2 utente = Admin

Questo completa la configurazione, riavvia Samba.

File server Samba per rete Windows

Molto spesso Samba viene utilizzato per creare un file server in Rete Windows.

File server in un dominio Active Directory

Per creare un file server integrato nel dominio Directory attiva, devi prima unire la tua macchina Ubuntu al dominio. Questo è oggetto di un articolo a parte:

Per creare un file server, non è necessario configurare PAM, è sufficiente aggiungere utenti e gruppi di dominio tramite Winbind al sistema.

Dopo aver effettuato correttamente l'accesso al dominio, tutto ciò che devi fare è configurare le risorse condivise sul tuo computer.

Qui dovresti prestare immediatamente attenzione a una cosa molto importante: Samba cerca di mappare i diritti sui file Windows ai diritti Unix, tuttavia, a causa delle differenze cardinali nei meccanismi di assegnazione dei diritti, ciò non è sempre possibile. Tieni presente che i permessi dei file sono sempre e comunque controllati dal tuo file system sulla macchina Ubuntu, samba può solo adattarsi ad essi, ma non modificarne il comportamento.

Pertanto, per impostazione predefinita, le risorse condivise avranno capacità di controllo degli accessi molto scarse: l'assegnazione di diritti diversi per l'utente, il gruppo e tutti gli altri. Tuttavia, questo può essere facilmente risolto aggiungendo il supporto POSIX ACL al tuo file system. In questo caso, sarà possibile assegnare vari diritti a diversi utenti e gruppi, quasi come in Windows.

Il supporto POSIX ACL è almeno in ext3/4, per attivarlo basta aggiungere alle opzioni di mount sezione desiderata parametro acl.

È importante che la directory che desideri condividere tramite Samba sia su un'unità montata con l'opzione acl. In caso contrario, non sarai in grado di utilizzare correttamente il meccanismo per delimitare i diritti di accesso ai file sulle palle.

C'è un altro punto molto importante: gli ACL POSIX non supportano l'ereditarietà dei diritti di accesso dalle directory principali e questa funzionalità è presente in Windows. Pertanto, Samba implementa un meccanismo aggiuntivo per la memorizzazione delle informazioni sull'ereditarietà dei diritti di accesso, che utilizza gli attributi estesi del file system. Pertanto, affinché Samba gestisca correttamente l'ereditarietà dei diritti, oltre ad acl, è necessario aggiungere il parametro user_xattr alle opzioni di montaggio del file system, che è responsabile dell'abilitazione del supporto per gli attributi estesi.

Ad esempio, utilizzo sempre dischi LVM separati per organizzare le risorse condivise e le mie righe fstab per loro assomigliano a questa:

/dev/mapper/data-profiles /var/data/profiles ext3 defaults,noexec,acl,user_xattr 0 2

L'opzione noexec è necessaria perché le condivisioni al 100% per Windows non dovrebbero essere eseguibili File Linux, e ancora una volta non farà male andare sul sicuro.

Per lavorare con acl su Ubuntu, è necessario installare un pacchetto di utilità appropriate:

sudo aptitude install acl

Successivamente, puoi vedere i diritti estesi (ad esempio ACL) su un file o una directory con il comando

Getfacl file

E installa con il comando

File setfacl

Per ogni evenienza, voglio attirare l'attenzione sul fatto che il meccanismo POSIX ACL non ha nulla a che fare con Samba: è solo un'aggiunta al meccanismo standard dei permessi di Linux. Di conseguenza, Samba può usarlo, ma non può modificarlo o aggirarlo in alcun modo.

Per lavorare con gli attributi estesi di FS, avrai bisogno di un pacchetto di utilità molto simile a acl - attr , che può essere installato con il comando

sudo aptitude install attr

Per visualizzare gli attributi estesi, puoi utilizzare il comando

Getfattr file

E per l'installazione

Setfattr file

Tuttavia, c'è un piccolo intoppo qui. Il punto è che Samba memorizza tutte le informazioni sull'ereditarietà in forma binaria in un singolo attributo esteso user.SAMBA_PAI . Quindi non sarai in grado di cambiare nulla con setfattr, a meno che tu non rimuova completamente gli attributi estesi (a volte potresti aver bisogno di farlo).

Bene, dovrai gestire l'eredità dei diritti da una macchina Windows utilizzando gli strumenti standard di questo sistema. O con l'utilità smbcacls se riesci a capire come usarla.

Esiste anche un modulo VFS sperimentale acl_xattr che consente di memorizzare gli ACL NT interamente in attributi estesi. Sfortunatamente, non esiste alcuna documentazione al riguardo, quindi è difficile dire qualcosa di comprensibile al riguardo. Samba 4 dovrebbe avere il supporto integrato completo per gli ACL NT, ma per ora puoi usare quello che hai.

Se hai qualcosa da aggiungere sugli attributi estesi in Samba e su come lavorare con essi, assicurati di scrivere in questo thread del forum. Sarei grato per qualsiasi link, articolo e commento sull'argomento.

Inoltre, gli attributi estesi del file system consentono a Samba di includere il supporto completo per gli attributi di file DOS come nascosto, archivio, ecc.

Quindi, supponiamo che tu abbia una directory nel sistema che desideri condividere tramite Samba (e si trova su un disco montato con supporto per acl e user_xattr). Ora devi configurare effettivamente la sua condivisione. Per fare ciò, è necessario inserire le informazioni appropriate nel file /etc/samba/smb.conf.

Iniziamo con impostazioni generali, che può essere aggiunto alla sezione di questo file (queste non sono tutte le opzioni possibili, solo alcune abbastanza utili):

# Disabilita la condivisione della stampante. A meno che, ovviamente, tu non voglia davvero condividerli. # Per disabilitare completamente tutte e 4 le righe sotto carica le stampanti = no show add printer wizard = no printcap name = /dev/null disable spoolss = yes # Nascondi quando viene visualizzato da File Windows con i seguenti nomi hide files = /$RECYCLE.BIN/desktop.ini/lost+found/Thumbs.db/ # Utilizza il seguente utente UNIX come account Guest guest per la condivisione pubblica share = nessuno # Tratta gli utenti non registrati come mappa guest per guest = Utente non valido ## Impostazioni che utilizzano gli attributi estesi del filesystem # Gestisci l'ereditarietà dei permessi con gli attributi estesi del filesystem map acl inherit = yes # Usa gli attributi estesi del filesystem per memorizzare gli attributi DOS store dos attribute = yes # Disabilita la mappatura degli attributi DOS sui permessi UNIX, abilitata per impostazione predefinita # Secondo man smb.conf queste opzioni devono essere disabilitate quando si usano gli attributi estesi map archive = no map system = no map hidden = no map readonly = no

Ora le impostazioni della risorsa condivisa direttamente. L'ho chiamato profili, e fisicamente sulla macchina Ubuntu si trova in /var/dati/profili:

# Comment comment = Profili utente # Percorso della cartella che condividiamo path = /var/data/profiles/ # Utenti con diritti di accesso illimitati alla condivisione # Ho un gruppo di amministratori di dominio. # Questi utenti vengono trattati come root locale quando lavorano con i file admin users = "@DOMAIN\Domain Admins" # Nascondi le cartelle a cui l'utente non ha accesso per nascondere illeggibile = sì # Accesso in sola lettura sola lettura = no # Maschere per i file creati - può essere impostato a piacere #create mask = 0600 #directory mask = 0700 # Disabilita blocco - è meglio disabilitare il blocco = no

Ci sono molte altre opzioni - vedi la documentazione di Samba per i dettagli.

Non dimenticare di impostare il proprietario corretto e i diritti di accesso alla cartella che condividi, altrimenti, nonostante le impostazioni di samba, scriverci a livello diritti Linux. Di solito faccio così:

sudo chmod ug+rwx /var/data/profiles sudo chown root:"utenti dominio" /var/data/profiles

Nota che poiché la tua macchina Ubuntu è inserita nel dominio, puoi utilizzare utenti e gruppi di dominio come proprietari di file direttamente in Ubuntu.

Verificare che la configurazione di Samba sia corretta con il comando

Testparm

Quindi riavvia Samba:

sudo /etc/init.d/samba restart

Ora puoi accedere alla risorsa condivisa da qualsiasi macchina nel dominio.

A proposito, non dimenticare SGID e Sticky bit per le directory. Ti consentiranno di ereditare il gruppo proprietario e impediranno agli utenti di eliminare file che non sono i loro: questo può essere molto utile per gli archivi multiutente. Tuttavia, a differenza dei diritti di modifica da Windows, la modifica di questi bit sulle cartelle su una risorsa condivisa non funzionerà, solo manualmente direttamente sul computer Ubuntu.

Tra le altre cose, Samba ti consente di organizzare lo spazio di archiviazione versione precedente file, che a volte è utile quando si creano condivisioni con i dati dell'utente.

File server autonomo

Non tutti hanno un dominio Active Directory. Pertanto, diventa spesso necessario organizzare un archivio di file offline su una macchina Linux con il proprio proprio sistema autorizzazione. Questo è molto facile da fare.

La caratteristica principale di tale organizzazione dell'archiviazione dei file sarà che tutte le informazioni sugli utenti verranno archiviate nel database Samba, rispettivamente, sarà necessario aggiungere e rimuovere manualmente gli utenti in samba.

La cosa più importante è decidere il metodo utilizzato per accedere alla risorsa. Per modificarlo è necessario impostare correttamente il valore del parametro security nella sezione del file /etc/samba/smb.conf. Puoi leggere di più su questo parametro o nella documentazione ufficiale.

Di solito il valore è share o user .

File server autonomo senza autorizzazione

È conveniente per la casa in modo che tutti possano vedere tutti. Questo può essere fatto aggiungendo 4 righe alla sezione del file /etc/samba/smb.conf. Alcuni potrebbero già esistere.

[global] workgroup=GRUPPO DI LAVORO mappa su guest=Utente non valido netbios name=NOTEBOOK security=utente

NOTEBOOK - il nome del computer che sarà sulla rete. Inoltre, è necessario installare programmi aggiuntivi:

sudo apt-get install samba

Per kubuntu, devi anche installare smb4k . Dopo aver modificato le configurazioni, è necessario riavviare i servizi. In systemd (a partire dal 15.04) un riavvio è simile al seguente:

sudo systemctl restart smbd.service nmbd.service

Puoi visualizzare le "palle" tramite il browser di file nautilus, konkueror o in questo modo:

Smbclient -L 127.0.0.1

. Documentazione ufficiale in inglese.

Condivisione di una cartella su ubuntu

Crea una cartella per la condivisione dei file.

mkdir ~/condividi

Aggiungi le seguenti righe alla fine del file /etc/samba/smb.conf, sostituisci yuraku1504 con il nome utente del computer samba:

[MyShareWork] comment = Anonymous Samba Share path = / home/ yuraku1504/ share guest ok = sì navigabile = sì scrivibile = sì sola lettura = no force user = yuraku1504 force group = yuraku1504

La cartella verrà aperta per la lettura e la scrittura.

Se noti un errore, seleziona una parte di testo e premi Ctrl + Invio
CONDIVIDERE: