Samba e Cups: Come condividere cartelle e stampanti su reti miste Linux/Windows

Dom, 17/02/2008 - 18:37

Samba e Cups: Come condividere cartelle e stampanti su reti miste Linux/Windows

Inviato da anubis 12 commenti
ATTENZIONE! Non rispondo di eventuali danni.

Questa guida si riferisce a una rete casalinga dove non vi è interesse ad avere misure di sicurezza come password, login o permessi particolari

Per avere ulteriori informazioni su samba e sulle sue misure di sicurezza potete leggere queste due ottime guide: Configurazione di Samba per una rete mista Windows-Linux (Autore: ferdybassi)

Configurazione semplice di Samba (utile da ssh) (Autore: antwal)

ATTENZIONE! Avendo trovato i tool di configurazione, quali yast o kcontrol, poco utili, (rendevano il file smb.conf illeggibile e non funzionante), verrà proposto un file di configurazione semplice e facilmente comprensibile che potrete modificare a vostro piacimento.
ATTENZIONE! I permessi delle cartelle sul vostro filesystem hanno la precedenza sui permessi assegnati nel file di configurazione di samba, smb.conf. Questo vuol dire che se una cartella ha i permessi in sola lettura, allora anche se su samba risulta essere scrivibile nella realtà non lo sarà.
Sarà dato per scontato che abbiate definito degli ip statici coerenti per ogni macchina presente in rete

Fatte le giuste premesse possiamo iniziare la guida vera e propria.

Repository SAMBA

Il team di Samba ha messo a disposizione per noi un repository in cui è possibile trovare le ultime versioni di samba, ovviamente più aggiornate di quelle presenti nel repo OSS. L'URL del repository per suse 10.3 è questo:

http://us1.samba.org/samba/ftp/Binary_Packages/SuSE/3.0/10.3/

per versioni precedenti di suse trovate tutto qui

http://us1.samba.org/samba/ftp/Binary_Packages/SuSE/3.0/

ATTENZIONE! L'ultima volta i pacchetti NON erano firmati, nonostante tutto risultano essere perfettamente funzionanti e privi di problemi. A voi la scelta se usarli o meno

Installazione e configurazione di SAMBA (Condivisione files e cartelle)

Prima di tutto installiamo i seguenti pacchetti:

samba kdebase3-samba samba-client yast2-samba-client yast2-samba-server samba-winbind libsmbclient

Adesso aprite Yast --> Sistema --> Editor dei Run Level ed abilitate i servizi:

smb nmb.

Quindi aprite con il vostro editor di testi preferito il file /etc/samba/smb.conf (saranno necessari i permessi di root)

e sostituite tutto il suo contenuto con questo:

le righe che andranno personalizzate sono evidenziate in grassetto:

[global]
workgroup = MSHOME
netbios name = Linux-pc
server string = OpenSUSE 10.3 - Samba

security = share
browsable = yes
wins support = no

[Cartelle Condivise]
path = /home/anubis/Cartelle Pubbliche/
available = yes
browsable = yes
public = yes
guest ok = yes
writable = yes
create mask = 0777
directory mask = 0777
Force group = users

[Documenti]
path = /home/anubis/Documenti/
available = yes
browsable = yes
public = yes
guest ok = yes
read only = yes

Come potete vedere il file è suddiviso in sezioni, la principale è la sezione [global]. Analizziamola nel dettaglio:

[global]
workgroup = MSHOME
netbios name = Linux-pc
server string = OpenSUSE 10.3 - Samba

security = share
browsable = yes
wins support = no

Il workgroup è il gruppo di lavoro in cui si trova il vostro computer, solitamente MSHOME oppure WORKGROUP, è importante che sia uguale per ogni computer vogliamo sia disponibile in rete.

netbios name e server string sono semplicemente i nomi con cui il nostro pc verrà identificato dagli altri computer

con queste righe infine,

security = share
browsable = yes
wins support = no

decidiamo che:
1) il livello di sicurezza è impostato su condivisione (il più basso e meno sicuro permesso da samba);
2) è possibile navigare le cartelle senza loggarsi;
3) non è attivo il supporto a wins.

La seconda e la terza sezione sono [Cartelle Condivise] ed [Documenti] ovvero la parti di smb.conf relative alla cartelle che vogliamo rendere disponibile nella rete. Analizziamo le varie righe, saltando ovviamente quelle già descritte:

[Cartelle Condivise]
path = /home/anubis/Cartelle Pubbliche/
available = yes
browsable = yes
public = yes
guest ok = yes
writable = yes
create mask = 0777
directory mask = 0777
Force group = users

Questo esempio è una cartella condivisa in lettura/scrittura

Tra parentesi Quadre è presente il nome con cui vogliamo la nostra cartella appaia agli altri computer.

path ci permette di specificare il percorso locale della cartella che vogliamo condividere.

available = yes indica che la condivisione è disponibile e con public = yes che è anche pubblica, non è necessario il login per "visualizzarla".

guest ok = yes vuol dire che sono ammessi utenti guest nella condivisione.

writable = yes abilita il permesso in scrittura alla condivisione

create mask = 0777
directory mask = 0777

specificano che ogni file o cartella creata tramite samba dovra avere i permessi indicati, in questo esempio, proprietario, gruppo e altri hanno i permessi di lettura/scrittura/esecuzione

Force group = users forza tutti gli utenti ad appartenere al gruppo users

[Documenti]
path = /home/anubis/Documenti/
available = yes
browsable = yes
public = yes
guest ok = yes
read only = yes

Questo esempio è una cartella condivisa in sola lettura

a differenza della precendete è presente la riga read only = yes al posto di writable = yes

Dopo aver salvato il file potete utilizzare il comando

# testparm

:
per identificare eventuali errori di battitura.

adesso non vi resta che riavviare smb ed nmb sui pc linux presenti nella rete con i seguenti comandi dati a root

# /etc/init.d/smb restart
# /etc/init.d/nmb restart

Perchè usare CUPS e non SAMBA per condividere una stampante?

Utilizzando Cups come server IPP (Internet Print Protocol) si ottengono i seguenti vantaggi:

1) Windows via samba tende a piantarsi, a volte anche per 5 o 10 minuti, a cercare la stampante se l'host su cui e' connessa e' offline, via IPP no.

2) Via samba sarete costretti a installare il driver proprietario (almeno che non usiate il modo RAW di CUPS) della stampante (oggi significa buttare 400 mega di spazio disco quasi sicuramente) su ogni PC Windows, via IPP con PostScript no.

3) Via samba spesso Windows non riesce a determinare se la stampante remota e' online oppure offline (cosa che oltretutto capita anche se la stampante e' collegata a un' altro PC windows), via IPP Windows riesce a rilevare lo stato della stampante.

4) Se la stampante e' un po' datata e non esistono driver per l'ultima versione di Windows ma Linux la supporta riuscirete a utilizzarla comunque con il metodo PostScript.

E' Presente un unico svantaggio, ovvero la necessita' di fissare il computer che condivide la stampante su un IP statico all'interno della rete (se la rete funziona in DHCP).

Configurazione di CUPS (Condivisione stampanti)

Il contenuto di questa sezione non è "farina del mio sacco" ma è attinto da questa guida:
http://www.openlinux.eu/content/view/29/39/

Ma vediamo ora come configurare la stampante da condividere:

Collegate e configurate la vostra stampante sul PC Linux... Stampate una pagina di prova per assicurarvi che tutto funzioni.

Ora in primo luogo dobbiamo aprire CUPS al mondo esterno, ossia fare in modo che esso accetti connessioni provenienti da altri Computer nella vostra rete locale...

Aprite quindi, (sul PC Linux con la stampante appena configurata) un Browser WEB qualsiasi (Firefox, Konqueror, etc) e digitate:

http://localhost:631

dovreste ottenere una schermata di questo tipo:

Ora andate sotto la voce "Amministrazione" e spuntate le caselline che dicono:
"Condividi le stampanti pubblicate connesse a questo sistema"
"Consenti amministrazione remota"
Dopo di che premete "modifica impostazioni"

Ok meta' dell'opera e' fatta.

Ora accediamo a Yast --> Sicurezza e utenti --> Firewall --> interfaccie consentite --> avanzate

ed apriamo la porta 631 quindi riavviamo il servizio di CUPS con il comando:

# /etc/init.d/cups restart

Ora se non avete commesso errori, CUPS dovrebbe accettare connessioni da altri computer nella rete.

Configurazione di Client Windows 2000/XP "Modo PostScript"

1) Andate nel pannello di controllo, su stampanti e fax...
2) Cliccate su "Aggiungi Stampante"
3) Scegliete "Stampante di Rete o Stampante collegata a un' altro Computer"
4) Ora scegliete la terza voce come da questo screenshot...

L'indirizzo che andrete a inserire sara' http://ip:631/printers/nome

ip = indirizzo IP statico del PC Linux con la stampante.
nome = sara' il nome che abbiamo dato alla stampante configurata su Linux, ad esempio hp840c...

Se non siete sicuri del nome della stampante, tornate nel pannello WEB di cups e cliccate sulla linguetta "Stampanti", da li potete vedere il nome esatto che CUPS assegna a ogni stampante configurata.

Quindi ricapitolando, se il PC Linux e' su ip: 192.168.1.35 e la stampante dentro a cups si chiama "hp840c" inseriamo nella maschera il seguente indirizzo:

http://192.168.1.35:631/printers/hp840c

Il passo successivo e fornire il driver, ora viene il bello, non vi servira' il CD col driver Windows della vostra stampante, assolutamente NO!

Il driver vero ce l'ha solo CUPS, voi dal client dovrete stampare semplicemente in PostScript, ci pensera' CUPS a elaborare il linguaggio PostScript trasformandolo in un linguaggio comprensibile dalla vostra stampante.

Selezionate dal menu' dei driver, integrati in Windows, una generica stampante PostScript...

Esattamente una "Apple Color LW 12/660 PS" se volete stampare a Colori, tutti i driver che terminano con "PS" sono PostScript. Il liguaggio PostScript non e' legato all'hardware in modo particolare, qualsiasi driver PS quindi dovrebbe sortire effetti simili o identici.

Il passo immediatamente successivo e' scegliere il nome della stampante, Windows ovviamente mette come predefinito "Apple LaserWriter 16/600" cancellate e scrivere il nome della stampante reale sulla quale andrete a stampare, ad esempio hp840c, giusto per non confondere l'utente che poi ci dovra' lavorare.

Se lanciate una stampa di prova dovrebbe funzionare tutto correttamente, inoltre Windows molto probabilmente riuscira' a determinare lo stato della stampante (in linea/errore/fuori linea etc) cosa che non funziona con Samba!!!

Configurazione di Client Linux (openSUSE)

Anche l'installazione della stampante condivisa sui client linux è semplicissima, non potendo considerare ogni tipo distro esistente mi limiterò a OpenSUSE.

Accediamo a Yast --> Hardware --> Stampante --> aggiungi --> Stampanti di rete --> Stampa tramite server di rete CUPS --> Coda IPP remota

ATTENZIONE! Per ogni riferimento e problemi riguardo a cups fate rifermiento alla guida originale di GiZMO: http://www.openlinux.eu/content/view/29/39/




Commenti

Ritratto di anubis
#1

Inviato da anubis il Sab, 17/05/2008 - 09:46.

un altro aiutino per voi

http://en.opensuse.org/Installing_Windows_printer_drivers_in_Samba

OpenSUSE Member,Packman Packager, Education Project Admin, LXDE Project Admin
Powered by http://en.opensuse.org/HP_Pavilion_dv6855el



Ritratto di mbronzetti
#2

Inviato da mbronzetti il Mar, 28/08/2012 - 18:54.

Re: Samba e Cups: Come condividere cartelle e stampanti su ...

con opensuse 11.0 come faccio a condividere una cartella con utenti che hanno
diritti di lettura/scrittura, altri di sola lettura e altri nessun diritto ?
con la vecchia configurazione di smb.conf di vecchie versioni non funziona più la distinzione fra utenti, puoi indicarmi come fare ?
saluti.