4. Condividere stampanti con PC Windows

4.1. Nozioni base sulla condivisione

Figura 3. Condivisione di una stampante

Samba usa i demoni nmbd e smbd per condividere file e stampanti con PC Windows. nmbd agisce come un name server Windows, comunicando il nome del proprio computer ai PC Windows nella LAN. smbd accetta richieste relative a file e stampa da PC Windows Figura 3.

È necessario scaricare ed installare driver di stampa Windows per ognuna delle stampanti Linux che vengono condivise. Si possono trovare i driver di stampa per Windows cercando nel sito web del produttore della propria stampante.

4.2. Configurazione di Samba

Se si permette l'accesso anonimo alla propria stampante è necessario creare un account utente per i compiti di stampa in remoto:

/usr/sbin/adduser --system --disabled-password smbprint

Questo comando aggiunge al proprio sistema un utente chiamato "smbprint". Ci si assicuri che ci sia abbastanza spazio su disco in /home/smbprint, la directory home dell'utente "smbprint", per farvi lo spool dei file. Si controlli che l'utente "smbprint" non abbia i permessi per leggere o modificare file e directory delicati sul proprio sistema. Se CUPS è stato configurato in modo da limitare la stampa a certi utenti nel proprio sistema, si deve permettere all'utente "smbprint" di accedere alle stampanti che si desidera condividere.

Il file di configurazione di Samba è /etc/samba/smb.conf. Il seguente è un esempio di file di configurazione impostato per usare CUPS con l'utente "smbprint":

[global]
  printcap name = cups
  printing = cups
  security = share
[printers]
  browseable = yes
  printable = yes
  public = yes
  create mode = 0700
  guest only = yes
  use client driver = yes
  guest account = smbprint
  path = /home/smbprint

Si noti che questa configurazione permette la stampa a chiunque possa creare una connessione con il proprio computer e non è raccomandata per computer su reti non sicure, quali quelli con accesso diretto ad Internet. Se è necessario implementare il controllo degli accessi, si imposti security = user o security = domain e si leggano le pagine man di Samba per ulteriori informazioni.

Una volta che si siano aggiunte le impostazioni suddette al proprio file di configurazione di Samba, è necessario riavviare Samba con il comando:

/etc/init.d/samba restart

4.3. Configurazione di CUPS

I driver di stampa Windows formattano il loro output per la stampante prima di inviarlo attraverso la rete. Si deve configurare CUPS in modo che accetti l'output preformattato decommentando nel file /etc/cups/mime.convs la seguente riga:

application/octet-stream   application/vnd.cups-raw   0   -

Si decommenti inoltre nel file /etc/cups/mime.types la seguente riga:

application/octet-stream

Ora è necessario dire a CUPS di accettare connessioni da altre macchine nella rete. Si aggiungano a /etc/cups/cupsd.conf queste righe:

<Location /printers>
 AuthType None
 Order Deny,Allow
 Deny From None
 Allow From All
</Location>
Così come per quella di Samba, questa configurazione permette a ogni computer di conettersi alle proprie stampanti e non è raccomandata per computer in reti non sicure. Per informazioni su come rendere più restrittivi i controlli sull'accesso alle proprie stampanti, si veda la pagina di manuale di cupsd.conf e la documentazione di CUPS.

Da ultimo, si riavvii CUPS con il comando seguente:

/etc/init.d/cupsys restart

Ora la propria stampante Linux dovrebbe essere condivisa con i PC Windows nella LAN. Si segua la prassi normale per aggiungere una stampante di rete ai propri PC Windows e ci si ricordi di stampare una pagina di prova.