Samba - primi passi. Creazione di una rete domestica utilizzando Samba per dispositivi con sistema operativo Windows, Linux e Android Servizio Samba

Il file di configurazione principale di Samba è /etc/samba/smb.conf. Il file di configurazione iniziale ha un numero significativo di commenti per documentare le varie direttive di configurazione.

Non tutte le opzioni possibili sono incluse nel file delle impostazioni predefinite. Vedi manuale uomo smb.conf o le FAQ di 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 si trova molto più in basso nella sezione ed è commentato per impostazione predefinita. Sostituisci anche ESEMPIO a qualcosa di più appropriato per l'ambiente circostante.

2. Crea una nuova sezione alla fine del file o rimuovi il commento da uno degli esempi per la directory che desideri condividere:

Commento = Percorso condivisione file server Ubuntu = /srv/samba/share navigabile = sì ospite ok = sì sola lettura = no crea maschera = 0755

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

    sentiero: percorso della directory condivisa.

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

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

    ospite ok: consente ai client di connettersi alla risorsa condivisa senza fornire una password.

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

    creare maschera: Definisce quali diritti di accesso verranno impostati per i nuovi file creati.

3. Ora che Samba è configurato, è necessario creare una directory e impostarne i permessi. Inserisci nel terminale:

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

parametro -P dice a mkdir di creare un albero di directory completo se non esiste.

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

Sudo restart smbd sudo restart nmbd

Ora puoi cercare nel file server Ubuntu utilizzando il client Windows e sfogliare le sue directory condivise. Se il tuo client non mostra le tue condivisioni automaticamente, 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 creata e disponga delle autorizzazioni corrette.

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

Implementazione protocolli di rete Blocco messaggi server (SMB) E File system Internet comune (CIFS). Lo scopo principale è condividere file e stampanti tra i sistemi Linux e Windows.

Sambaè composto da diversi demoni che lavorano sfondo e fornire servizi e una serie di strumenti da riga di comando per interagire con i servizi Windows:

  • smbd- un demone che è un server SMB per servizi file e servizi di stampa;
  • nmbd- un demone che fornisce servizi di denominazione NetBIOS;
  • smblient- L'utilità fornisce l'accesso dalla riga di comando alle risorse SMB. Permette anche di ottenere elenchi risorse condivise su server remoti e visualizzare l'ambiente di rete;
  • smb.conf- un file di configurazione contenente le impostazioni per tutti gli strumenti Samba;

Elenco delle porte utilizzate da Samba

  • condividere- questa modalità di sicurezza emula il metodo di autenticazione utilizzato dai sistemi operativi Sistemi Windows 9x/Windows Me. In questa modalità, i nomi utente vengono ignorati e le password vengono assegnate alle condivisioni. In questa modalità, Samba tenta di utilizzare una password fornita dal client che può essere utilizzata da utenti diversi.
  • utente* - Questa modalità di sicurezza è impostata per impostazione predefinita e utilizza un nome utente e una password per l'autenticazione, come di solito avviene in Linux. Nella maggior parte dei casi, sui moderni sistemi operativi, le password vengono archiviate in un database crittografato utilizzato solo da Samba.
  • server- questa modalità di sicurezza viene utilizzata quando è necessario che Samba esegua l'autenticazione quando si accede a un altro server. Per i client, questa modalità assomiglia all'autenticazione a livello utente (modalità utente), ma Samba in realtà contatta il server specificato nel parametro password server per eseguire l'autenticazione.
  • dominio- utilizzando questa modalità di sicurezza puoi entrare a pieno titolo in un dominio Windows; Per i client, è identico all'autenticazione a livello di utente. A differenza dell'autenticazione a livello di server, l'autenticazione del dominio utilizza uno scambio di password più sicuro a livello di dominio. Per unirsi completamente a un dominio, è necessario eseguire comandi aggiuntivi sul sistema Samba e possibilmente sul controller del dominio.
  • Annunci- questa modalità di sicurezza è simile al metodo di autenticazione del dominio, ma richiede un controller di dominio Directory attiva Servizi di dominio.

Elenco completo dei parametri Sambaè nelle manpage.

Sopra c'era un esempio con accesso a una directory con accesso condiviso. Consideriamo un altro esempio con una directory privata, a cui è possibile accedere solo tramite login e password.

Creiamo un gruppo e aggiungiamo un utente ad esso

Sudo groupadd smbgrp sudo usermod -a -G smbgrp proft

Creiamo una directory per l'utente e impostiamo i diritti

Sudo mkdir -p /srv/samba/proft sudo chown -R proft:smbgrp /srv/samba/proft sudo chmod -R 0770 /srv/samba/proft

Creiamo un utente samba

Sudo smbpasswd -a proft

Aggiungi una nuova risorsa a /etc/samba/smb.conf

Percorso = /srv/samba/proft utenti validi = @smbgrp guest ok = no scrivibile = sì sfogliabile = sì

Riavviamo il server

Sudo systemctl riavvia smbd

Un esempio di impostazione di una risorsa che contiene collegamento simbolico nella cartella dell'utente ( /srv/samba/media/video » /home/prof/video)

Percorso = /srv/samba/media guest ok = sì sola lettura = sì navigabile = sì forza utente = proft

Configurazione del cliente

Visualizza le risorse condivise del tuo computer

Client Smb -L 192.168.24.101 -U%

Un altro metodo di connessione per un utente anonimo con riga di comando

Smbclient -U nessuno //192.168.24.101/public ls

Se il server è configurato con un livello di sicurezza più elevato, potrebbe essere necessario passare il nome utente o il nome di dominio utilizzando rispettivamente le opzioni -W e -U.

Smbclient -L 192.168.24.101 -U proft -W GRUPPO DI LAVORO

Montaggio di una risorsa samba

# crea un punto di montaggio mkdir -p ~/shares/public # monta una risorsa # per l'utente anonimo nessuno mount -t cifs //192.168.24.101/public /home/proft/shares/public -o user=nobody,password=, gruppo di lavoro=GRUPPO DI LAVORO,ip=192.168.24.101,utf8 # per l'utente proft mount -t cifs //192.168.24.101/public /home/proft/shares/public -o utente=proft,password=1,gruppo di lavoro=GRUPPO DI LAVORO,ip= 192.168.24.101,utf8

Di più password migliori memorizzare in un file separato

# sudo vim /etc/samba/sambacreds nome utente=proft password=1 nome utente=noboy password=

Impostare i diritti di accesso su 0600

Sudo chmod 0600 /etc/samba/sambacreds

Nuova linea di montature

Mount -t cifs //192.168.24.101/public /home/proft/shares/public -o user=proft,credentials=/etc/samba/sambacreds,workgroup=WORKGROUP,ip=192.168.24.101

E un esempio per /etc/fstab

//192.168.24.101/public /home/proft/shares/public cifs noauto,nome utente=proft,credentials=/etc/samba/sambacreds,workgroup=WORKGROUP,ip=192.168.24.101 0 0

È possibile aprire la risorsa nel file manager Nautilus/Nemo/etc utilizzando questo percorso smb://192.268.24.101.

Se Nemo scrive Nemo non può gestire le posizioni "smb". significa che manca il pacco gvfs-smb.

Accesso al server con client Windows e Android

In Windows è possibile individuare il gruppo di lavoro dalla console utilizzando

Postazione di lavoro di configurazione di rete

È possibile aprire le risorse su una macchina remota digitando l'indirizzo UNC nella riga Explorer o in Esegui (Start - Esegui): \192.168.24.101 .

Su Android puoi connetterti al server utilizzando ES Esplora file, nella scheda Rete, aggiungi un server, semplicemente tramite IP (senza specificare lo schema, smb). Dopodiché puoi aprire le risorse condivise. Per le statistiche: un film HDRIP viene eseguito senza alcun rallentamento.

Lettura aggiuntiva

Al giorno d'oggi è abbastanza comune trovare computer che eseguono Linux e Windows sulla stessa rete locale. Le ragioni di questa simbiosi possono essere diverse: ad esempio, i proprietari di un Internet cafè non avevano fondi sufficienti per acquistare un sistema operativo con licenza per tutti i computer, oppure è stato semplicemente assunto un amministratore di sistema lati positivi Linux. La popolarità dei sistemi operativi Microsoft è in gran parte determinata dal software client per Windows. Non è un segreto che questo settore Software molto sviluppato. Molte aziende hanno compiuto sforzi seri in questo senso e hanno creato programmi davvero buoni e, soprattutto, facili da usare che anche un utente normale può facilmente padroneggiare. Ma come server, la posizione di Windows non è più così chiara. Un server che esegue Unix è tradizionalmente caratterizzato da affidabilità, funzionamento stabile, sicurezza e requisiti spesso inferiori per le risorse di sistema. Ma in ogni caso, collegando semplicemente computer con piattaforme software diverse alla rete non si otterrà il risultato atteso. Il problema è che questi due sistemi utilizzano principi diversi per organizzare le risorse di rete che sono incompatibili tra loro.
Poiché non è necessario attendere la misericordia di Microsoft ed è improbabile che Windows impari a lavorare con il file system di rete (NFS) Unix utilizzando mezzi standard e, a dire il vero, non conosco i programmi di terze parti, la maggior parte Il modo più popolare è cercare di insegnare a Unix a “fingere” che se fosse Windows NT.

L'interazione in una rete di computer che eseguono Windows si basa sull'uso del protocollo SMB (blocco messaggi server)- blocchi di messaggi del server. Assicura che vengano eseguite tutte le attività necessarie in questi casi: apertura e chiusura, lettura e scrittura, ricerca di file, creazione ed eliminazione di directory, impostazione di un lavoro di stampa ed eliminazione da lì. Tutte le azioni necessarie a questo scopo vengono implementate nei sistemi operativi simili a Unix utilizzando il pacchetto SAMBA. Le sue capacità possono essere suddivise in due categorie: fornitura di risorse (con cui intendiamo l'accesso al sistema della stampante e ai file) per i client Windows e accesso alle risorse del client. Cioè, un computer che esegue Linux può fungere sia da server che da client. Innanzitutto, consideriamo l'opzione del server SAMBA.

Cosa dovrebbe prevedere SAMBA operazione normale su una rete di macchine Windows? Innanzitutto, il controllo degli accessi, che può essere implementato sia a livello di risorsa (livello di condivisione), quando a qualsiasi risorsa sulla rete vengono assegnate una password e le relative regole di utilizzo (ad esempio, "sola lettura"), mentre il nome utente ha assolutamente no, nessun significato; oppure un'organizzazione più avanzata e flessibile a livello di utente, quando per ciascun utente viene creato un account che, oltre al nome e alla password, contiene tutte le informazioni necessarie sui diritti di accesso alla risorsa. Prima di accedere alla risorsa richiesta, ogni utente viene autenticato, dopodiché gli vengono concessi i diritti in base ai suoi account. In secondo luogo è necessaria l'emulazione dei diritti di accesso determinati dal file system. Il fatto è che i sistemi in questione hanno diritti di accesso ai file e alle directory sul disco in modo diverso. In Unix, ci sono tradizionalmente tre categorie di utenti di file: proprietario, gruppo E il resto (altro). Ognuna di queste entità può essere fornita permessi di lettura, scrivere E esecuzione. In Windows NT il sistema di accesso è un po' più flessibile; l'accesso viene concesso a più gruppi o utenti e i relativi diritti di accesso vengono stabiliti separatamente per ogni soggetto. Pertanto, è impossibile emulare completamente i diritti di accesso inerenti a NTFS utilizzando SAMBA.

Con i client in esecuzione Windows 9x, la situazione è diversa. Dai tempi del nonno del DOS, poiché il sistema è a utente singolo e non si poteva parlare di utenti, tanto meno di gruppi, per il file system FAT sono stati definiti solo quattro attributi: sola lettura, sistema, archivio e nascosto. Inoltre, in Windows, a differenza di Unix, l'estensione del file ha un significato speciale: quelli destinati ad essere eseguiti hanno l'estensione .exe, .com o .bat. Quando si copiano file da macchine Unix a computer che eseguono Controllo di Windows gli attributi sono impostati in questo modo:

solo per leggere- leggere, scrivere per il titolare;

archivio- esecuzione per il titolare;

sistemico- esecuzione per il gruppo;

nascosto: esecuzione per il gruppo.

Una rete di macchine Windows può essere organizzata come gruppo di lavoro, quando i computer sono indipendenti l'uno dall'altro e ognuno ha il proprio database di password e login con la propria politica di sicurezza, e anche come dominio NT. Viene gestita l'intera base per l'autenticazione dell'utente e del computer controller di dominio primario (PDC, controller di dominio primario), cioè. centralizzato. Samba consente di limitare l'accesso a tutti questi livelli e funge da "browser principale" nel contesto di un gruppo di lavoro o controller di dominio.

Abbiamo risolto le questioni organizzative generali. Vediamo ora nello specifico l'implementazione e la configurazione di un server SAMBA in ambiente Linux. Perché il server Samba funzioni, devono essere in esecuzione due demoni: smbd, che fornisce un servizio di stampa e condivisione di file per i client Samba (come Windows di tutte le strisce) e nmbd, che alimenta il servizio dei nomi NetBIOS (può anche essere utilizzato per interrogare altri demoni del servizio dei nomi). Il protocollo viene utilizzato per accedere ai client TCP/IP. In genere, Samba viene installato con una distribuzione Linux. Come controllare? Basta dare il comando:

e dovresti ottenere qualcosa del genere:

Samba: /usr/sbin/samba /etc/samba /usr/share/man/man7/samba.7.gz

Se non è incluso nella distribuzione standard, benvenuto su ftp://ftp.samba.org/pub/samba/samba-latest.tar.gz o quasi su qualsiasi server con programmi per Linux. Il pacchetto è facile da installare, quindi per non occupare spazio, supponiamo che tu lo abbia installato. Ora controlliamo se il demone è in esecuzione:

$ps-aux | grep smbd root 1122 0.0 0.6 4440 380 ? S 16:36 0:00 smbd -D

Come puoi vedere, ce l'ho già in funzione. Se non ce l'hai e vuoi che si avvii all'avvio del sistema, in Linux Mandrake, ad esempio, seleziona la casella desiderata in DrakConf- servizi di avvio o dentro Pannello di controllo di Red Hat- Configurazione del servizio, di solito questo è sufficiente. Oppure avvia manualmente: ./etc/rc.d/init.d/smb start. L'unico file di configurazione di Samba si chiama smb.conf e solitamente si trova nella directory /etc (sebbene in AltLinux, ad esempio, sia nella directory /etc/samba). Il servizio SAMBA lo legge ogni 60 secondi, quindi le modifiche apportate alla configurazione hanno effetto senza riavvio, ma non si applicano alle connessioni già stabilite.

Questo è il motivo per cui amo Linux, perché i file di configurazione sono in testo semplice (e ben commentati all'interno), e per utilizzare la maggior parte dei parametri è sufficiente decommentare la riga corrispondente. Il file smb.conf non fa eccezione. È costituito da sezioni con nome che iniziano con il nome della sezione racchiuso in parentesi quadre. All'interno di ogni sezione ci sono una serie di parametri nella forma chiave=valore. Il file di configurazione ne contiene quattro sezioni speciali: , e risorse individuali (azioni). Come suggerisce il nome, la sezione contiene le caratteristiche più generali che si applicheranno ovunque, ma che, tuttavia, possono poi essere sovrascritte nelle sezioni per le singole risorse. Alcuni parametri in questa sezione sono rilevanti anche per la configurazione della parte client Samba.

Valori dei parametri tipici della sezione globale:

Workgroup = group_name # nome del gruppo di lavoro sulla rete Windows netbios name = nome del server sulla rete server string = commento visibile nella finestra delle proprietà di navigazione in rete guest ok = yes # consente l'accesso guest (guest ok = no - guest l'accesso è vietato) account ospite = nessuno # nome con il quale è consentito l'accesso ospite sicurezza = utente # Livello di accesso. user - a livello utente, security = share - autenticazione basata su nome utente e password. Quando si memorizza il database delle password su un altro server SMB, vengono utilizzati i valori security = server e password server = name_server_NT. Se il server è membro di un dominio, viene utilizzato il valore security = domain, la password di accesso è specificata nel file definito utilizzando l'opzione smb passwd file = /path/to/file.

Inoltre, durante la registrazione è possibile utilizzare password crittografate e non crittografate (testo semplice).. Questi ultimi vengono utilizzati nei sistemi Windows più vecchi (Windows for Workgroups, Windows 95 (OSR2), tutte le versioni di Windows NT 3.x, Windows NT 4 (fino al Service Pack 3)). Per abilitare l'opzione per utilizzare una password crittografata, utilizzare l'opzione crittografa password = sì. Si prega di prestare particolare attenzione a questa opzione. Nelle distribuzioni Linux più vecchie create durante l'era Windows 95 (e con una versione precedente di Samba), la crittografia della password è disabilitata per impostazione predefinita e samba prima versione 2.0 non supporta affatto questa modalità (a proposito, questa opzione e altre simili - quelle che non riguardano l'accesso a risorse specifiche - vengono utilizzate anche nel client).

Per visualizzare correttamente i nomi dei file russi, sono necessarie le seguenti opzioni: codepage client = 866 e set di caratteri = koi8-r. Nelle distribuzioni con una buona localizzazione, ad esempio derivate da Mandrake e quelle russe, questa riga è già lì; a volte è sufficiente decommentarla, ma nella maggior parte delle altre devi aggiungerla tu stesso.

L'opzione interfacce = 192.168.0.1/24 specifica su quale rete (interfaccia) deve essere eseguito il programma se il server è connesso a più reti contemporaneamente. Quando si imposta il parametro Bind Interfaces Only = Yes, il server risponderà solo alle richieste provenienti da queste reti.

gli host consentono = 192.168.1. 192.168.2. 127. - definisce i clienti ai quali è consentito l'accesso al servizio.

Nella sezione globale è possibile utilizzare varie variabili per una configurazione più flessibile del server. Una volta stabilita la connessione, vengono invece sostituiti i valori reali. Ad esempio, nella direttiva log file = /var/log/samba/%m.log, il parametro %m aiuta a definire un file di log separato per ogni macchina client. Ecco le variabili più comuni utilizzate nella sezione globale:

%a - Architettura del sistema operativo sul computer client (valori possibili: Win95, Win NT, SCONOSCIUTO, ecc.);

%m: nome NetBIOS del computer client;

%L - Nome NetBIOS del server SAMBA;

%v - Versione SAMBA;

%I - Indirizzo IP del computer client;

%T - data e ora;

%u - nome dell'utente che lavora con il servizio;

%H è la directory home dell'utente %u.

Inoltre, per una configurazione più flessibile, viene utilizzata la direttiva include, utilizzando le variabili di cui sopra. Ad esempio: include = /etc/samba/smb.conf.%m - ora quando richiedi vendite da un computer ed è presente un file /etc/samba/smb.conf.sales, la configurazione verrà presa da questo file. Se non esiste un file separato per una macchina particolare, per lavorarci viene utilizzato un file comune.

# sudo vim /etc/samba/sambacreds nome utente=proft password=1 nome utente=noboy password=

Impostare i diritti di accesso su 0600

Sudo chmod 0600 /etc/samba/sambacreds

Nuova linea di montature

Mount -t cifs //192.168.24.101/public /home/proft/shares/public -o user=proft,credentials=/etc/samba/sambacreds,workgroup=WORKGROUP,ip=192.168.24.101

E un esempio per /etc/fstab

//192.168.24.101/public /home/proft/shares/public cifs noauto,nome utente=proft,credentials=/etc/samba/sambacreds,workgroup=WORKGROUP,ip=192.168.24.101 0 0

È possibile aprire la risorsa nel file manager Nautilus/Nemo/etc utilizzando questo percorso smb://192.268.24.101.

Se Nemo scrive Nemo non può gestire le posizioni "smb". significa che manca il pacco gvfs-smb.

Accesso al server con client Windows e Android

In Windows è possibile individuare il gruppo di lavoro dalla console utilizzando

Postazione di lavoro di configurazione di rete

È possibile aprire le risorse su una macchina remota digitando l'indirizzo UNC nella riga Explorer o in Esegui (Start - Esegui): \192.168.24.101 .

Su Android puoi connetterti al server utilizzando ES Esplora file, nella scheda Rete, aggiungi un server, semplicemente tramite IP (senza specificare lo schema, smb). Dopodiché puoi aprire le risorse condivise. Per le statistiche: un film HDRIP viene eseguito senza alcun rallentamento.

Lettura aggiuntiva

O forse è solo l’interesse e la curiosità che spingono gli utenti a cercare i vari software adatti. Samba è uno di questi software. Devi sapere come configurare Samba su Ubuntu Server se vuoi trasformare il tuo computer in un database o in un archivio di file.

L'installazione di Samba su Ubuntu Server ti consente di creare un database.

Se pensavi che la pagina fosse dedicata all'apprendimento della danza, ti sbagliavi di grosso. Samba è un software gratuito. Fornisce l'accesso a stampanti e file. E lo fa su vari sistemi operativi.

Cosa serve?

Rispetto ad altri pacchetti software per scopi simili, Samba presenta numerosi vantaggi e caratteristiche.

  • Consente di connettere tra loro un sistema simile a Unix, ovvero qualsiasi sistema Linux e Windows. E non solo Windows. Il programma è molto “onnivoro”: MacOS, Solaris e altri sistemi operativi di vario grado di popolarità.
  • Samba consente agli utenti Windows di utilizzare i computer Ubuntu come server. Cioè, utilizza i file a cui è stato stabilito l'accesso, nonché alcuni dei dispositivi collegati.
  • Supporta la struttura del dominio NT Domain, gestisce gli utenti NT, supporta le funzioni di membro e controller primario.

Probabilmente, per molti, la cosa principale è la comunicazione con le macchine Windows. In questo caso, agiscono come client e il computer Ubuntu funge da server. D'altra parte, un utente Ubuntu può anche accedere alle cartelle di rete di Windows.


Samba è stato prodotto dal 1992. E, cosa più importante, vengono ancora rilasciate nuove versioni. Quest'ultimo è stato rilasciato il 7 marzo 2017. Ogni anno gli sviluppatori cercano di stabilire la compatibilità con un gran numero di diverse versioni dei sistemi operativi, ma la caratteristica principale rimane la connessione dei sistemi Linux con Microsoft. Rispetto a Windows Server, Samba potrebbe essere inferiore a causa della mancanza di supporto per alcuni protocolli e infrastrutture host. Tuttavia, molti sostengono che la velocità di Samba sia molto più elevata.

Configurazione di Samba

Prima della configurazione, è necessario installare il programma. L'installazione di Samba avviene allo stesso modo degli altri programmi, inserendo il comando nel terminale:

sudo apt-get install samba


Precisiamo subito: tutti i passaggi che verranno descritti, compresa l'installazione del programma, possono essere eseguiti sia su Ubuntu semplice che su Ubuntu Server. Solo quest'ultimo ha a disposizione un'interfaccia esclusivamente testuale.

Dopo l'installazione, dovresti fare un backup del file di configurazione:

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

$ sudo vi /etc/samba/smb.conf

Oppure ne modifichiamo uno esistente. Questo file contiene le impostazioni di base del server Samba. Per capire cosa faremo dopo, dobbiamo capire cosa significano le diverse linee.

  • Gruppo di lavoro - gruppo di lavoro. Anche il valore di questo parametro sarà spesso Workgroup, poiché in Windows il dominio del gruppo di lavoro predefinito è simile a questo.
  • Il nome Netbios è il nome del computer Ubuntu visto dagli utenti Windows. Qui puoi inserire il valore a tua discrezione.
  • Sicurezza: modalità di autorizzazione dell'utente. L'impostazione predefinita è Utente, ovvero l'autenticazione a livello di utente. Per ora è meglio lasciare così.
  • Livello del sistema operativo - indica la priorità che Samba ha rispetto agli altri client (PC) sulla rete locale o Internet.
  • Ordine di risoluzione dei nomi: ordine di risoluzione dell'indirizzo IP in base al nome NetBIOS.
  • Sola lettura: privilegio di leggere o scrivere una directory. Il valore può essere "sì" - sola lettura, "no" - scrittura.

Crea un utente

Questa è l'azione più semplice con cui puoi iniziare a lavorare con Samba.


Aggiungi un utente nel sistema operativo stesso:

$ useradd -M -l -s /sbin/nologin nome utente

Creiamo una password per questo:

Aggiungiamo il nostro utente al database Samba:

$ smbpasswd -un nome utente


Puoi eseguire varie altre azioni utilizzando il comando $ smbpasswd:

  • $ nome utente smbpasswd - cambia password
  • $ smbpasswd -x nomeutente - elimina un utente
  • $ smbpasswd -d nome utente - banna l'utente

Il server deve essere riavviato se si apportano modifiche al file di configurazione. Questo viene fatto usando il comando:

$ systemctl riavvia smb

Queste sono le impostazioni di base di Samba. Ora puoi provare a mettere in pratica il programma.

Accesso alle cartelle

Per prima cosa proviamo a creare una cartella che sarà accessibile a tutti gli utenti, anche a quelli non autorizzati in Samba.

Creiamo una cartella con la quale lavoreremo poi su due computer:

$ sudo mkdir -p /samba/access

Ora stiamo effettuando un accesso esteso a questa cartella in modo che qualsiasi nostro cliente possa aprirla rete locale:

$cd/samba
$ sudo chmod -R 0755 accesso
$ sudo chown -R nessuno: accesso a nessun gruppo/

Il proprietario secondo il codice non è nessuno.


Ora nel file di configurazione del server devi creare due sezioni: la prima contenente le informazioni di base:

Gruppo di lavoro = GRUPPO DI LAVORO
stringa server = Server Samba %v
nome netbios = srvr1
sicurezza = utente
mappa su ospite = utente errato
ordine di risoluzione del nome = host bcast
proxy DNS = no
#==============
E il secondo, contenente i dati sulla cartella di accesso:

Percorso = /samba/access
navigabile = sì
scrivibile = sì
ospite ok = sì
sola lettura = no

Le sezioni si susseguono nello stesso ordine.

Aggiorna modifiche al server:

$ sudo servizio smbd riavvio

Azioni con un computer Windows

Su Windows, devi anche eseguire alcuni passaggi in modo da poter aprire facilmente una nuova cartella condivisa e modificarla.

  1. Apri la riga di comando. È consigliabile farlo con diritti estesi, cioè come amministratore.
  2. Eseguiamo il comando:
  3. blocco note C:\Windows\System32\drivers\etc\hosts
  4. Si apre un file in cui inseriamo la seguente riga:
  5. 168.0.1 srvr1.dominio.com srvr1
    Grazie ad esso, la cartella diventerà accessibile.
  6. Puoi aprirlo utilizzando la riga "Esegui". Premi Win + R, inserisci: Successivamente, si aprirà una cartella per noi.


Cartella chiusa

Un server Samba configurato può essere utilizzato anche per creare cartelle di rete con accesso limitato. Anche tale cartella deve essere prima creata e poi aggiunta alla configurazione di Samba.

Creiamo una cartella chiamata "Chiuso":

$ sudo mkdir -p /samba/allaccess/chiuso

Creiamo un gruppo speciale che può avere accesso a questa cartella:

$ sudo addgroup securegroup

Creiamo diritti speciali per diversi gruppi:

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

Proprio come nel caso di una cartella aperta, aggiungiamo informazioni alla configurazione:

Percorso = /samba/access/chiuso
utenti validi = @securegroup
ospite ok = no
scrivibile = sì
navigabile = sì

Riavviamo il server.

Come puoi capire, abbiamo creato una cartella Chiusa all'interno di Access. Pertanto, Accesso può essere aperto da ogni utente della rete locale, ma per visualizzare e modificare Chiuso è necessario disporre di diritti speciali.

Per assicurarti che tutto funzioni esattamente come specificato nel file batch, puoi eseguire alcuni semplici passaggi.

Al giorno d'oggi è abbastanza comune trovare computer che eseguono Linux e Windows sulla stessa rete locale. Le ragioni di questa simbiosi possono essere diverse: ad esempio, i proprietari di un Internet cafè non avevano fondi sufficienti per acquistare un sistema operativo con licenza per tutti i computer, oppure amministratore di sistema Ero semplicemente attratto dagli aspetti positivi di Linux. La popolarità dei sistemi operativi Microsoft è in gran parte determinata dal software client per Windows. Non è un segreto che questo settore software sia molto sviluppato. Molte aziende hanno compiuto sforzi seri in questo senso e hanno creato programmi davvero buoni e, soprattutto, facili da usare che anche un utente normale può facilmente padroneggiare. Ma come server, la posizione di Windows non è più così chiara. Un server che esegue Unix è tradizionalmente caratterizzato da affidabilità, funzionamento stabile, sicurezza e requisiti spesso inferiori per le risorse di sistema. Ma in ogni caso, collegando semplicemente computer con piattaforme software diverse alla rete non si otterrà il risultato atteso. Il problema è che questi due sistemi utilizzano principi diversi per organizzare le risorse di rete che sono incompatibili tra loro.
Poiché non è necessario attendere la misericordia di Microsoft ed è improbabile che Windows impari a lavorare con il file system di rete Unix (NFS) mezzi standard e, a dire il vero, non conosco nessun programma di terze parti, il modo più popolare è provare a insegnare a Unix a "fingere" di essere Windows NT.

L'interazione in una rete di computer che eseguono Windows si basa sull'uso del protocollo SMB (blocco messaggi server)— blocchi di messaggi del server. Assicura che vengano eseguite tutte le attività necessarie in questi casi: apertura e chiusura, lettura e scrittura, ricerca di file, creazione ed eliminazione di directory, impostazione di un lavoro di stampa ed eliminazione da lì. Tutte le azioni necessarie a questo scopo vengono implementate nei sistemi operativi simili a Unix utilizzando il pacchetto SAMBA. Le sue capacità possono essere suddivise in due categorie: fornitura di risorse (con cui intendiamo l'accesso al sistema della stampante e ai file) per i client Windows e accesso alle risorse del client. Cioè, un computer che esegue Linux può fungere sia da server che da client. Innanzitutto, consideriamo l'opzione del server SAMBA.

Cosa dovrebbe fornire SAMBA per il normale funzionamento delle macchine Windows su una rete? Innanzitutto, il controllo degli accessi, che può essere implementato sia a livello di risorsa (livello di condivisione), quando a qualsiasi risorsa sulla rete vengono assegnate una password e le relative regole di utilizzo (ad esempio, "sola lettura"), mentre il nome utente ha assolutamente no, nessun significato; oppure un'organizzazione più avanzata e flessibile a livello di utente, quando per ciascun utente viene creato un account che, oltre al nome e alla password, contiene tutte le informazioni necessarie sui diritti di accesso alla risorsa. Prima di accedere alla risorsa richiesta, ogni utente viene autenticato, dopodiché gli vengono concessi i diritti in base ai suoi account. In secondo luogo è necessaria l'emulazione dei diritti di accesso determinati dal file system. Il fatto è che i sistemi in questione hanno diritti di accesso ai file e alle directory sul disco in modo diverso. In Unix, ci sono tradizionalmente tre categorie di utenti di file: proprietario, gruppo E il resto (altro). Ognuna di queste entità può essere fornita permessi di lettura, scrivere E esecuzione. In Windows NT il sistema di accesso è un po' più flessibile; l'accesso viene concesso a più gruppi o utenti e i relativi diritti di accesso vengono stabiliti separatamente per ogni soggetto. Pertanto, è impossibile emulare completamente i diritti di accesso inerenti a NTFS utilizzando SAMBA.

Con i client in esecuzione Windows 9x, la situazione è diversa. Sin dai tempi del nonno del DOS, poiché il sistema è monoutente e non si poteva parlare di utenti, tanto meno di gruppi, per il file Sistemi FAT Sono definiti solo quattro attributi − sola lettura, sistema, archivio e nascosto. Inoltre, in Windows, a differenza di Unix, l'estensione del file ha un significato speciale: quelli destinati ad essere eseguiti hanno l'estensione .exe, .com o .bat. Quando si copiano file da macchine Unix a computer Windows, gli attributi sono impostati in questo modo:

solo per leggere— leggere, scrivere per il proprietario;

archivio— esecuzione per il proprietario;

sistemico— esecuzione per il gruppo;

nascosto: esecuzione per il gruppo.

Una rete di macchine Windows può essere organizzata come gruppo di lavoro, quando i computer sono indipendenti l'uno dall'altro e ognuno ha il proprio database di password e login con la propria politica di sicurezza, e anche come dominio NT. Viene gestita l'intera base per l'autenticazione dell'utente e del computer controller di dominio primario (PDC, controller di dominio primario), cioè. centralizzato. Samba consente di limitare l'accesso a tutti questi livelli e funge da "browser principale" nel contesto di un gruppo di lavoro o controller di dominio.

Abbiamo risolto le questioni organizzative generali. Vediamo ora nello specifico l'implementazione e la configurazione di un server SAMBA in ambiente Linux. Perché il server Samba funzioni, devono essere in esecuzione due demoni: smbd, che fornisce un servizio di stampa e condivisione di file per i client Samba (come Windows di tutte le strisce) e nmbd, che alimenta il servizio dei nomi NetBIOS (può anche essere utilizzato per interrogare altri demoni del servizio dei nomi). Il protocollo viene utilizzato per accedere ai client TCP/IP. In genere, Samba viene installato con una distribuzione Linux. Come controllare? Basta dare il comando:

$dov'è samba

e dovresti ottenere qualcosa del genere:

Samba: /usr/sbin/samba /etc/samba /usr/share/man/man7/samba.7.gz

Se non è incluso nella distribuzione standard, benvenuto su ftp://ftp.samba.org/pub/samba/samba-latest.tar.gz o quasi su qualsiasi server con programmi per Linux. Il pacchetto è facile da installare, quindi per non occupare spazio, supponiamo che tu lo abbia installato. Ora controlliamo se il demone è in esecuzione:

$ps-aux | grep smbd root 1122 0.0 0.6 4440 380 ? S 16:36 0:00 smbd -D

Come puoi vedere, ce l'ho già in funzione. Se non ce l'hai e vuoi che si avvii all'avvio del sistema, in Linux Mandrake, ad esempio, seleziona la casella desiderata in DrakConfservizi di avvio o dentro Pannello di controllo di Red HatConfigurazione del servizio, di solito questo è sufficiente. Oppure avvia manualmente: ./etc/rc.d/init.d/smb start. L'unico file di configurazione di Samba si chiama smb.conf e solitamente si trova nella directory /etc (sebbene in AltLinux, ad esempio, sia nella directory /etc/samba). Il servizio SAMBA lo legge ogni 60 secondi, quindi le modifiche apportate alla configurazione hanno effetto senza riavvio, ma non si applicano alle connessioni già stabilite.

Questo è il motivo per cui amo Linux, perché i file di configurazione sono in testo semplice (e ben commentati all'interno), e per utilizzare la maggior parte dei parametri è sufficiente decommentare la riga corrispondente. Il file smb.conf non fa eccezione. È costituito da sezioni con nome che iniziano con il nome della sezione racchiuso tra parentesi quadre. All'interno di ogni sezione ci sono una serie di parametri nella forma chiave=valore. Il file di configurazione contiene quattro sezioni speciali: , e risorse individuali (condivisioni). Come suggerisce il nome, la sezione contiene le caratteristiche più generali che si applicheranno ovunque, ma che, tuttavia, possono poi essere sovrascritte nelle sezioni per le singole risorse. Alcuni parametri in questa sezione sono rilevanti anche per la configurazione della parte client Samba.

Valori dei parametri tipici della sezione globale:

Workgroup = group_name # nome del gruppo di lavoro sulla rete Windows netbios name = nome del server sulla rete server string = commento visibile nella finestra delle proprietà di navigazione in rete guest ok = yes # consente l'accesso guest (guest ok = no - guest l'accesso è vietato) account ospite = nessuno # nome con il quale è consentito l'accesso ospite sicurezza = utente # Livello di accesso. user - a livello utente, security = share - autenticazione basata su nome utente e password. Quando si memorizza il database delle password su un altro server SMB, vengono utilizzati i valori security = server e password server = name_server_NT. Se il server è membro di un dominio, viene utilizzato il valore security = domain, la password di accesso è specificata nel file definito utilizzando l'opzione smb passwd file = /path/to/file.

Inoltre, durante la registrazione è possibile utilizzare password crittografate e non crittografate (testo semplice).. Questi ultimi vengono utilizzati nei sistemi Windows più vecchi (Windows for Workgroups, Windows 95 (OSR2), tutte le versioni di Windows NT 3.x, Windows NT 4 (fino al Service Pack 3)). Per abilitare l'opzione per utilizzare una password crittografata, utilizzare l'opzione crittografa password = sì. Si prega di prestare particolare attenzione a questa opzione. Nelle vecchie distribuzioni Linux create durante l'era Windows 95 (e oltre), vecchia versione Samba) la crittografia della password è disabilitata per impostazione predefinita e spetta a Samba versione 2.0 non supporta affatto questa modalità (a proposito, questa opzione e altre simili - quelle che non riguardano l'accesso a risorse specifiche - vengono utilizzate anche nel client).

Per visualizzare correttamente i nomi dei file russi, sono necessarie le seguenti opzioni: codepage client = 866 e set di caratteri = koi8-r. Nelle distribuzioni con una buona localizzazione, ad esempio derivate da Mandrake e quelle russe, questa riga è già lì; a volte è sufficiente decommentarla, ma nella maggior parte delle altre devi aggiungerla tu stesso.

L'opzione interfacce = 192.168.0.1/24 specifica su quale rete (interfaccia) deve essere eseguito il programma se il server è connesso a più reti contemporaneamente. Quando si imposta il parametro Bind Interfaces Only = Yes, il server risponderà solo alle richieste provenienti da queste reti.

gli host consentono = 192.168.1. 192.168.2. 127. — definisce i clienti ai quali è consentito l'accesso al servizio.

Nella sezione globale è possibile utilizzare varie variabili per una configurazione più flessibile del server. Una volta stabilita la connessione, vengono invece sostituiti i valori reali. Ad esempio, nella direttiva log file = /var/log/samba/%m.log, il parametro %m aiuta a definire un file di log separato per ogni macchina client. Ecco le variabili più comuni utilizzate nella sezione globale:

%a - Architettura del sistema operativo sul computer client (valori possibili: Win95, Win NT, SCONOSCIUTO, ecc.);

%m: nome NetBIOS del computer client;

%L: nome NetBIOS del server SAMBA;

%v: versione SAMBA;

%I: indirizzo IP del computer client;

%T: data e ora;

%u è il nome dell'utente che lavora con il servizio;

%H è la directory home dell'utente %u.

Inoltre, per una configurazione più flessibile, viene utilizzata la direttiva include, utilizzando le variabili di cui sopra. Ad esempio: include = /etc/samba/smb.conf.%m - ora quando richiedi vendite da un computer ed è presente un file /etc/samba/smb.conf.sales, la configurazione verrà presa da questo file. Se non esiste un file separato per una macchina particolare, per lavorarci viene utilizzato un file comune.

C'è anche una possibilità interessante creazione server virtuale . Per fare ciò, utilizzare il parametro alias netbios:

Alias ​​Netbios = amministratore contabilità vendite

Ora diciamo a Samba di utilizzare il proprio file di configurazione per ciascun server virtuale:

Include = /etc/samba/smb.conf.%L

Nella finestra del browser di rete saranno visibili tre server: saldi, contabilità, amministratore.

Abilitando le opzioni preserva case e preserva caso breve, il server salva tutti gli input con distinzione tra maiuscole e minuscole (su Windows, maiuscole e minuscole non fanno distinzione tra maiuscole e minuscole, su tutti i sistemi Unix è il contrario).

La sezione consente agli utenti di connettersi alle proprie directory di lavoro senza descriverle esplicitamente. Quando un client richiede la sua directory //sambaserver/sergej, la macchina cerca la descrizione corrispondente nel file e, se non la trova, cerca la presenza di questa sezione. Se la partizione esiste, cerca nel file delle password la directory di lavoro dell'utente che ha effettuato la richiesta e, se trovata, la rende disponibile all'utente.

Una descrizione tipica di questa sezione è simile alla seguente:

Commento = Home Directory # commento visibile nella finestra delle proprietà di rete sfogliabile = no # determina se visualizzare la risorsa nell'elenco di navigazione. scrivibile = sì # consente (no - nega) la scrittura nella directory home modalità creazione = 0750 # diritti di accesso per i file appena creati modalità directory = 0775 # anche, ma solo per le directory

Dopo aver configurato le impostazioni predefinite, è possibile creare risorse di rete a cui può accedere un utente o un gruppo di utenti specifico. Tale risorsa viene creata da una directory già esistente; per questo scriviamo nel file:

Commento = Percorso materiale pubblico = /home/samba pubblico = sì scrivibile = no stampabile = no elenco di scrittura = amministratore, @sales

Il parametro path punta alla directory in cui si trova la risorsa; il parametro public specifica se la risorsa può essere utilizzata da un ospite e il parametro printable specifica se la risorsa può essere utilizzata per la stampa. Il parametro dell'elenco di scrittura consente di definire gli utenti a cui è consentito scrivere su una risorsa indipendentemente dal valore scrivibile (in questo esempio si tratta dell'utente amministratore e del gruppo vendite). È anche possibile utilizzare l'elenco opposto: elenco di lettura. Se è necessario nascondere alcuni file, in Unix/Linux il nome del file deve iniziare con un punto (il parametro nascondi file punto, che controlla la visualizzazione file nascosti, il valore predefinito è ). Inoltre, è possibile specificare modelli per i nomi dei file nascosti, per i quali viene utilizzato il parametro nascondi file. Ciascun modello inizia e termina con una barra (/) e può contenere i caratteri utilizzati espressioni regolari. Ad esempio: nascondi file = /*.log/??.tmp/. Tali trucchi costano agli utenti Windows semplicemente impostando la modalità "Mostra file nascosti e di sistema" in Explorer. Per limitare con sicurezza la disponibilità (la possibilità di eliminare) un file (directory), utilizzare i file veto ed eliminare i parametri dei file veto.

Con le unità CD la situazione è un po' più complicata. Il fatto è che nei sistemi simili a Unix non esiste il concetto di disco in quanto tale e per ottenere l'accesso al dispositivo desiderato è necessario prima montarlo in un albero di directory (# mount -t iso9660 /dev/cdrom / mnt/cdrom) e dopo l'uso, in modo da non distruggerlo file system, deve essere smontato (# umount /dev/cdrom), altrimenti il ​​dispositivo semplicemente non rinuncerà al disco. Se hai un demone in esecuzione sul tuo server autofs, allora il problema è facilmente risolvibile. Per smontare automaticamente un dispositivo che è rimasto inutilizzato per un certo periodo, impostare il parametro timeout nel file /etc/auto.master sul valore desiderato. Per esempio:

/mnt/auto/etc/ --timeout=5

(una riga simile esiste già, devi solo rimuoverla dal commento). Quindi imposta le opzioni per il dispositivo appropriato nel file /etc/auto.tab:

Cdrom -fstype=auto,ro:/dev/cdrom

Dopo tutto ciò, scriviamo le seguenti righe in /etc/smb.conf per rendere disponibile questa risorsa:

Percorso = /mnt/cdrom scrivibile = no

La seconda opzione consiste nell'utilizzare le direttive preexec e postexec, che indicano quali comandi devono essere eseguiti quando si accede a una risorsa e dopo essersi disconnessi da essa (questi parametri possono essere specificati per qualsiasi risorsa e anche nella sezione globale, il che apre grandi possibilità) .

Path = /mnt/cdrom read only = yes root preexec = mount /mnt/cdrom # Solo root ha il diritto di montare una risorsa root postexec = umount /mnt/cdrom # Naturalmente questi punti di mount devono essere descritti nel file /etc/ fstab, altrimenti è necessario fornire anche altre informazioni.

Ora, quando si accede a una risorsa, il CD-ROM viene automaticamente montato e talvolta smontato. L'intero problema è che la decisione di chiudere una risorsa deve essere presa dal server: i client, di regola, non ne vengono informati. Ma di solito ciò accade perché la risorsa viene utilizzata da più utenti contemporaneamente o viene lasciata su un computer apri il file su questa risorsa (Dispositivo occupato). Pertanto, il CD-ROM non viene smontato automaticamente; l'unico modo accettabile per liberare la risorsa è cercarlo utilizzando l'utilità smbstatus numero del processo che utilizza questa risorsa e uccidilo con il comando # kill pid_number (o kill -s HUP pid_number).

Dopo aver stabilito la configurazione necessaria, creeremo ora gli account utente (ad eccezione del login ospite con diritti minimi nessuno). Per identificare gli utenti SAMBA viene utilizzato il file /etc/samba/smbpasswd, che contiene nomi utente e password crittografate. Poiché il meccanismo di crittografia nelle reti di macchine Windows non è compatibile con i meccanismi Unix standard, per compilare il file delle password viene utilizzata un'utilità separata: smbpasswd.

# useradd -s /bin/false -d /home/samba/sergej -g sales sergej # smbpasswd -a sergej # smbpasswd -e sergej

Questo esempio aggiunge un nuovo utente Sergej appartenenti al gruppo saldi, con una shell fittizia (le opzioni possibili sono /sbin/nologin, /dev/null) e una directory home /home/samba/sergej. Quindi creiamo una password per l'utente sergej e l'ultimo passaggio è abilitare l'accesso per l'utente, perché è disabilitato per impostazione predefinita. Un punto interessante che a volte può creare confusione. Il fatto è che quando ci si connette a un server SAMBA su un computer con Windows NT/2000, all'utente viene richiesto di inserire, come previsto, login e password, e se per l'accesso viene utilizzato un computer con Windows 9x/Me, allora all'utente viene richiesto di inserire solo la password e il login viene generato automaticamente in base al nome di registrazione.

Puoi anche associare più utenti Windows a un utente Linux/Unix. Per fare ciò, viene creato un file di mappatura /etc/smbusers.map, in cui ogni mappatura è specificata come una riga separata:

Utente_Linux = utente_win1 utente_win2 utente_winN

Nella sezione aggiungere la riga nomeutente map = /etc/smbusers.map. In questo caso l'utente Windows deve registrarsi con la password dell'utente a cui è associato.

Utilizzando SAMBA, puoi organizzare la stampa in rete da computer che eseguono Windows (se stai pianificando un server di stampa separato, per questo è sufficiente una macchina basata su un processore 486).

Per fare ciò, è necessario scrivere le seguenti righe nella sezione:

Nome Printcap = /etc/printcap # file che descrive le stampanti collegate al sistema carica stampanti = yes # indica la necessità di inclusione automatica nell'elenco delle risorse di rete printing = lprng # sistema di stampa (per Linux si può usare anche bsd).

Percorso = /var/spool/samba # punta alla directory in cui vengono posizionati i lavori di stampa sfogliabile = sì stampabile = sì sola lettura = sì

Dopo aver creato il file, testarlo utilizzando l'utilità testparm. Sfortunatamente, utilizzando questo programma puoi rilevare solo errori di sintassi, non errori logici, quindi non vi è alcuna garanzia che i servizi descritti nel file funzionino correttamente (durante il test verranno visualizzate tutte le impostazioni, anche quelle installate per impostazione predefinita, quindi controlla attentamente risultato). Ma se il programma non si lamenta, puoi sperare che il file venga scaricato senza problemi all'avvio. Correttezza funzionamento della stampante elencati nel file /etc/printcap rispetto al server SAMBA possono essere controllati utilizzando l'utilità testprns. Inoltre, non dimenticarti dei file .log: se sorgono problemi, a volte puoi trovare una soluzione lì.

Ora un po' delle cose buone. La configurazione di Samba è piuttosto complessa, ma la distribuzione viene fornita con uno strumento di amministrazione basato sul Web chiamato schiacciare(Strumento di amministrazione Web Samba, ). Swat viene lanciato come servizio o utilizzo Server Apache ed è destinato alla modifica del file smb.conf, nonché al controllo dello stato, all'avvio e all'arresto dei demoni Samba e alla modifica delle password degli utenti. Affinché funzioni come servizio, il file /etc/services deve contenere la riga swat 901/tcp e il file /etc/inetd.conf deve contenere swat stream tcp nowait.400 root /usr/local/samba/bin/ swat swat (questo è se viene utilizzato il demone di rete inetd, di solito nelle distribuzioni più vecchie; le distribuzioni moderne utilizzano un'opzione più sicura: xinetd). Per utilizzare swat nella directory /etc/xinet.d, creare un file swat con il seguente contenuto:

Service swat (disable = no port = 901 socket_type = stream wait = no only_from = 127.0.0.1 # questa è una riga da cui eseguire solo macchina locale utente = server root = /usr/sbin/swat log_on_failure += USERID )

Ora per avviare Swat nella finestra del browser, inserisci:

Http://localhost:901

Ma prima, assicurati di creare un utente amministratore nel modo sopra descritto. E non eseguire mai il servizio SAMBA per conto di radice.

Dopo tutte le modifiche al file smb.conf, a volte sarà necessario riavviare il demone:

Smb: /etc/rc.d/init.d/smb riavviare

Se dopo tutti i passaggi precedenti non fosse ancora possibile organizzare l'accesso alle risorse SAMBA, allora utilità come ping(per verificare la disponibilità di un nodo sulla rete), nmblookup(per interrogare i nomi NetBIOS) o come ultima risorsa tcpdump. E non dimenticare i diritti di accesso, perché assegnando la directory /gde/to/w/glubine all'utente, gli darai la possibilità di leggere (eseguire correttamente) le directory precedenti.

Ora parliamo dell'utilizzo del client Samba, perché noi ( Utenti Linux) Voglio anche lavorare con le risorse di rete di Windows. Per scoprire quali risorse sono disponibili, è necessario immettere il comando /usr/bin/smbclient -L nome_host. Il programma chiederà una password, in risposta alla quale nella maggior parte dei casi sarà sufficiente premere Invio. Ora, per connetterti alla risorsa richiesta, inserisci il nome del computer e la risorsa richiesta. Per esempio:

# /usr/bin/smbclient \\Alex\Sound

(qui stiamo provando a connetterci alla cartella Audio sul computer di Alex). Di conseguenza, se il comando è stato immesso correttamente e la risorsa di rete esiste, dovrebbe essere richiesto di immettere una password. Inseriscila o premi Invio se non è richiesta una password per l'accesso. In risposta, riceverai un prompt del client Samba: smb: >. Ulteriore lavoro avviene attraverso una serie di comandi con i quali è possibile eseguire tutte le operazioni necessarie per lavorare con i file (copiare, creare, spostare, ecc.). Per ricevere aiuto, inserisci smb: > help. Questa modalità è alquanto scomoda, quindi nella maggior parte dei casi viene utilizzato il modulo smbfs, parte del samba; ma nelle distribuzioni più vecchie il kernel potrebbe essere compilato senza il supporto smbfs, e quindi dovrà essere ricompilato. Per montare la risorsa richiesta, digita qualcosa del genere:

Mount -t smbfs -o nomeutente=utente,password=123456,iocharset=koi8-r,codepage=866 //alex/sound /mnt/sound.

Se non specifichi nome utente e password, il sistema te lo richiederà. Non dimenticare che guardando il file ~HOME/.bash_history, puoi scoprire la password in base ai comandi digitati. Un'altra sottigliezza: se il programma smbclient visualizza correttamente i file con nomi russi, il modulo smbfs a volte non presta assolutamente alcuna attenzione ad altre codifiche, anche se le specifichi esplicitamente. Dicono che il problema possa essere risolto con una patch, ma non ne ho ancora trovata una per la mia Red Hat.

Se vuoi che la condivisione SMB venga montata automaticamente all'avvio del sistema, aggiungi una riga come questa al tuo file /etc/fstab:

//guest@alex/sound /mnt/alex/sound smbfs rw, noauto 0 0.

In questo esempio, per conto dell'utente ospite(se la risorsa supporta questo utente e se questo utente ha accesso solo con password, non preoccuparti: ti verrà sicuramente richiesta) la risorsa di rete sound sul computer alex è montata nella cartella /mnt/alex/sound con la possibilità di scrivere in questa directory. A proposito, il client Samba vede perfettamente le risorse di rete nascoste, ad es. quelli il cui nome di rete termina con il segno $.

Come puoi vedere, devi lavorare con la riga di comando, il che provoca un silenzioso orrore per l'utente moderno. E qui il mondo OpenSource lo ha incontrato a metà strada: sono state create molte utilità che consentono di lavorare con le risorse Samba in un modo più familiare, premendo i pulsanti nelle shell grafiche. Il programma più popolare incluso nella distribuzione Mandrake e nei suoi derivati, così come Debian - gnomba. In ogni caso, può essere trovato sulla maggior parte dei server con software Linux (l'ho visto di sicuro su ftp://ftp.altlinux.ru/). Questa utility consente di visualizzare le risorse di rete disponibili () e, se necessario, montarle nella directory desiderata, mentre è possibile un'opzione di montaggio specificando login e password per quelle risorse che lo richiedono. Possibile lancio gestore di file quando montato (default gmc), creando directory per le risorse montate, impostando l'opzione di scansione automatica all'avvio del programma (possibile utilizzando il protocollo SMB per impostazione predefinita) e scansione per indirizzi IP (pianificata utilizzando il protocollo WINS). Per ragioni a me sconosciute, in alcune distribuzioni, durante la scansione utilizzando il protocollo SMB, le risorse di rete non venivano visualizzate, quindi utilizzo sempre il secondo metodo, poiché funziona perfettamente, è sufficiente impostare l'intervallo di indirizzi IP per la scansione (se Sai). Affinché i nomi dei file russi vengano visualizzati correttamente, non dimenticare di installare i caratteri koi8-r nella scheda Opzioni > Selezione carattere, e controlla anche le righe che indicano la codifica cirillica nel file smb.conf (vedi sopra).

Se gnomba può solo montare e smontare risorse, allora il programma xsbrowser Permette anche di inserirli come cartelle sul computer locale (). È vero, non sono ancora riuscito a far sì che questo programma comprenda file con nomi russi, ma ci sono anche aspetti positivi: quando questo programma è in esecuzione, tutti i comandi di montaggio e le varie richieste di rete vengono inviati alla console, il che consente di capire loro bene. Gli sviluppatori KDE hanno anche provato: through Preferenze > Informazioni utilità disponibile Stato di Samba, visualizzando tutte le connessioni da/per computer locale, che è anche uno strumento utile per visualizzare i file .log. L'utilità fornisce informazioni simili komba, che può essere trovato su http://linux.tucows.com/().

Per quanto vorrei dirti di più, una rivista è una rivista: non puoi adattare tutto. Successivamente, l'uomo onnipresente e le informazioni verranno in tuo aiuto. Inoltre, tutte le informazioni di riferimento necessarie possono essere ottenute dall'utilità SWAT e in Red Hat 7.3 c'era un libro Using Samba Robert"a Eckstein"a(Lingua inglese - pessima, completamente gratuita - buona: /usr/share/swat/using_samba), disponibile anche da SWAT (). Documentazione aggiuntiva, domande frequenti e file di configurazione di esempio possono essere trovati nella directory /usr/share/doc/samba. In vari forum si possono trovare opinioni piuttosto contraddittorie sul lavoro di Samba, da estremamente negative a delizia completa. Personalmente sono dalla parte di chi sostiene questa cosa. Emulatore di Windows NT, inoltre, secondo i risultati dei test con la stessa attrezzatura, il server Samba mostra prestazioni superiori di circa il 25-30% rispetto a un computer che esegue un sistema Microsoft. Buona fortuna.

A volte è necessario configurare molto rapidamente una condivisione di file sul server e aprirne l'accesso. In questo caso non è necessario delimitare configurazioni complesse, diritti di accesso o altro. Hai solo bisogno di un rapido accesso alle informazioni senza domande inutili.

Ad esempio, di recente ho avuto bisogno di qualcosa di simile per aprire l'accesso a backup, che sono stati archiviati sul server. Non volevo capirlo e cercare informazioni da solo, dovevo dare rapidamente alla persona l’accesso in lettura in modo che potesse trovare tutto ciò di cui aveva bisogno.

Non mi occuperò specificamente delle versioni del sistema operativo. Le configurazioni di Samba sono le stesse quasi ovunque abbia lavorato con loro, soprattutto nelle configurazioni più semplici.

Quindi, installa samba con any in modo adeguato per il tuo sistema operativo. Le configurazioni sono valide per la versione 3 di samba. Successivamente decidiamo di cosa abbiamo bisogno:

  • accesso tramite utente e password,
  • accesso tramite indirizzo IP,
  • accesso a tutti senza restrizioni.

A seconda di ciò, le impostazioni saranno leggermente diverse.

Per l'accesso tramite password disegna la seguente configurazione:

Sicurezza = utente passdb backend = tdbsam workgroup = MYGROUP stringa server = percorso Samba = /mnt/shara utenti validi = @users gruppo forzato = maschera creazione utenti = 0660 maschera directory = 0771 scrivibile = sì navigabile = sì

# useradd share-user -M -G users -s /sbin/nologin

Importiamo questo utente in Samba e impostiamo la password:

# smbpasswd -a utente condiviso

E proviamo ad andare al ballo all'indirizzo:

\\ip server\condivisione

Organizzare accesso in base all'indirizzo IP, effettuare le seguenti impostazioni in smb.conf:

Sicurezza = condividi gruppo di lavoro = MIO GRUPPO stringa server = mappa Samba su guest = percorso utente errato = /mnt/files sfogliabile = sì scrivibile = sì guest ok = sì sola lettura = nessun host consentito = 192.168.0.171

In questo caso accesso completo sarà all'indirizzo 192.168.0.171. Per aggiungere l'intera sottorete, è necessario specificare quanto segue:

Gli host consentono = 192.168.0.

Puoi combinare sottoreti e indirizzi diversi, separandoli con spazi. Per disabilitare l'accesso ad alcuni singoli indirizzi da una sottorete consentita, puoi procedere come segue:

Gli host consentono = 192.168.0. tranne 192.168.0.15

L'accesso sarà consentito a tutta la sottorete 192.168.0.0/24, ad eccezione dell'indirizzo 192.168.0.15.

Riavviamo samba e controlliamo.

Se hai installato Samba 4, questa configurazione non funzionerà e riceverai un errore:

ATTENZIONE: verrà ignorato il valore non valido "share" for parameter "security" !}

Affinché l'accesso IP funzioni correttamente, è necessario apportare le seguenti modifiche alla configurazione precedente:

Sicurezza = mappa utente per ospite = password errata

Lasciare gli altri parametri invariati. Successivamente, l'accesso tramite IP funzionerà sulla versione 4 di Samba.

Se l’accesso sarà consentito a tutti senza restrizioni, la configurazione di Samba più semplice sarà questa:

Sicurezza = gruppo di lavoro utente = stringa server MYGROUP = account ospite Samba = nessuno mappato sull'ospite = percorso utente errato = /mnt/files navigabile = Sì ospite ok = Sì scrivibile = Sì pubblico = sì

Non dimenticare di concedere a tutti i diritti sulla cartella:

# chmod 0777 /mnt/files

Riavvia Samba e prova ad accedere. Dovrebbero farti entrare senza fare domande.

Ecco come puoi organizzare un semplice file server usando samba letteralmente in 5 minuti. E spesso è più difficile e non è necessario. Per qualche tipo di dump del file, l'ultima opzione è adatta.

Per configurazioni più complesse ho articoli separati:

Corso online su Linux

Se desideri imparare come creare e mantenere sistemi altamente disponibili e affidabili, ti consiglio di familiarizzare con essi corso online “Amministratore Linux” nell'OTUS. Il corso non è per principianti; per l'ammissione è necessaria una conoscenza di base delle reti e Installazione di Linux alla macchina virtuale. La formazione dura 5 mesi, al termine dei quali i diplomati del corso con successo potranno sostenere colloqui con i partner. Cosa ti darà questo corso:
  • Conoscenza dell'architettura Linux.
  • Sviluppo metodi moderni e strumenti di analisi ed elaborazione dei dati.
  • Possibilità di selezionare una configurazione per le attività richieste, gestire i processi e garantire la sicurezza del sistema.
  • Conoscenza degli strumenti di lavoro di base di un amministratore di sistema.
  • Comprensione delle specifiche di distribuzione, configurazione e manutenzione di reti basate su Linux.
  • La capacità di risolvere rapidamente i problemi emergenti e garantire un funzionamento stabile e ininterrotto del sistema.
Mettiti alla prova con il test d'ingresso e consulta il programma per maggiori dettagli.


Superiore