Configurazione delle stampanti con i drivers sul server

OBSOLETO (si riferisce alla 3.0.14), da risistemare per samba 3.0.24

Lo scopo di questa configurazione e` fornire un supporto di stampa attraverso Samba3 e CUPS, tenendo i drivers delle stampanti sul server e consentendo quindi di installare le stampanti sui client senza dover caricare i drivers a mano. E` possibile (e necessario) impostare dei default di stampa (dimensione pagine, orientamento, risoluzione, e quanto altro il driver di stampa consente) che vengono caricati dai client quando installano la stampante. In questa configurazione i client mandano a Samba la stampa gia` formattata per la stampante, e CUPS stampa in modo "raw". Questa scelta e` dettata dal fatto che i driver di stampa hanno funzioni cosi` sofisticate che gli utenti si infastidirebbero nel perderli passando per il Postscript. Lo svantaggio e` che occorre mantenere i drivers per tutte le stampanti anziche` un solo driver Postscript per tutti.

Configurazione di CUPS

Dopo aver installato CUPS normalmente (i drivers di stampa non sono necessari ma non fa male metterli) occorre abilitare la gestione dei lavori in formato RAW editando i due files /etc/cups/mime.types ed /etc/cups/mime.convs. In ciascuno dei due andare in fondo al file e togliere il cancelletto che commenta la riga che riguarda il mime-type "octet stream". Fatto questo, se si vuole si puo` modificare il files /etc/cupsd.conf per consentire la gestione delle stampanti mendiante l'interfaccia web da altri host che non siano localhost. Questo non e` comunque necessario per usare Samba.

Chiaramente e` necessario creare in CUPS almeno una stampante. Non disponendo del driver specifico in CUPS, o sapendo che comunque i job verranno sempre e solo da Salma e mai da applicazioni locali, e` possibile installarla semplicemente come "RAW queue". Va notato che se la si installa con un driver, CUPS potrebbe cercare di passare al driver i dati RAW che vengono da Samba, creando un casino mica da ridere. Occorre verificare come evitare questo, e se la direttiva cups options = "raw" in smb.conf sia sufficiente ad evitarlo.

Configurazioni nella sezione [global] di smb.conf

Nella sezione [global] vanno inserite le seguenti configurazioni relative al sistema di stampa:

printer admin = root, @ntadmins
printing = cups
printcap name = cups
load printers = yes
cups options = "raw"
lpq cache time = 3

Questo consente solo a root e al gruppo ntadmins di modificare le impostazioni delle stampanti, caricare drivers, creare e cancellare stampanti. Inoltre forza CUPS a considerare tutti i job ricevuti da Samba come "in formato RAW" e quindi da mandare alla stampante senza alcuna elaborazione.

Configurazione dello share print$

Lo share di nome print$, che contiene i drivers delle stampanti, va configurato come segue:

[print$]
   comment = Printer drivers
   path = /ud0/print
   read only = Yes
   guest ok = yes
   write list = @ntadmins,root
   browseable = no
   map hidden = no
   map system = no
   map archive = no
   force create mode = 0664
   force directory mode = 0775

Cosi` facendo gli utenti non possono modificare i drivers perche` hanno accesso in sola lettura allo share (in RW ai files), mentre root e il gruppo ntadmins possono scrivere. L'utente non autenticato "guest" puo` accedere in lettura, quindi chiunque puo` leggere i driver delle stampanti, anche chi non e` autenticato sul server o sul dominio. Per assicurarmi che il gruppo che possiede la directory possa sempre avere accesso RW ai drivers, ed evitare che i drivers caricati da un amministratore non possano essere modificati da un altro, ho usato i due comandi force directory mode e force create mode. I vari comandi di "map" messi a "no" servono per evitare possibili casini se le stesse direttive sono state messe a "yes" nella sezione global.

La directory /ud0/print deve essere leggibile da tutti e scrivibile almeno da chi deve caricare i drivers. Per il momento come soluzione l'ho messa cosi`:

drwxrwsr-x    4 root     users        4096 Jun  4 17:39 print

Ovvero owned da root.users e SETGID, in modo che tutto il contenuto apparetenga al gruppo users.

Ovviamente avrebbe potuto appartenere al gruppo degli amministratori di stampa (ntadmins in questo caso), ma non e` necessario per la sicurezza in quanto il comando write list limita l'accesso in scrittura, cosi` ho preferito renderla scrivibile a tutti gli "users".

Per creare la giusta struttura della directory i comandi sono:

mkdir print
mkdir print/W32X86
mkdir print/WIN40
chown root.users -R print
chmod g+rws -R print
chmod o+rx -R print

Caricamento dei drivers delle stampanti

Il metodo piu` semplice per caricare i driver a mio avviso e` usare una workstation Windows, quindi qui riporto quello e non gli altri. Per ulteriori informazioni c'e` il bellissimo ma lunghissimo manuale online di Samba qui: http://us4.samba.org/samba/docs/man/Samba-HOWTO-Collection/index.html.

Prima di inziare, occorre che la coda di stampa esista gia` in CUPS e sia pertanto gia` visibile fra le stampanti condivise dal server Samba.

Le seguenti operazioni vanno fatte su una workstation Windows 2000 o XP Pro loggandosi come utente appartenente al gruppo degli amminstratori di stampa cosi` come definito in precedenza, oppure come root.

Si notera` che il nome della stampante e` cambiato e ora e` quello impostato dal driver e non piu` quello della coda definita su CUPS. Questo va bene e non crea problemi. Volendo si puo` rinominare la stampante per usare un nome piu` significativo, senza problemi, mediante la funzione "rinomina" ottenibile sempre cliccandola con il tasto destro.

Note varie

Samba/ConfPrinters (last edited 2009-04-12 17:33:24 by localhost)