Chapter 4,
Disk Shares , briefly introduced
[printers]
, a special share for automatically creating printing services. Let's review how it works: if you create a share named
[printers]
in the configuration file, Samba will automatically read in your printer capabilities file and create a printing share for each printer that appears in the file. For example, if the Samba server had
lp
,
pcl
and
ps
printers in its printer capabilities file, Samba would provide three printer shares with those names, each configured with the options in the
[printers]
share.
Recall that Samba obeys following rules when a client requests a share that has not been created through the
smb.conf file:
-
If the share name matches a username in the system password file and a
[homes]
share exists, a new share is created with the name of the user and is initialized using the values given in the
[homes]
and
[global]
sections.
-
Otherwise, if the name matches a printer in the system printer capabilities file, and a
[printers]
share exists, a new share is created with the name of the printer and initialized using the values given in the
[printers]
section. (Variables in the
[global]
section do not apply here.)
-
If neither of those succeed, Samba looks for a
default
service
share. If none is found, it returns an error.
This brings to light an important point: be careful that you do not give a printer the same name as a user. Otherwise, you will end up connecting to a disk share when you may have wanted a printer share instead.
Here is an example
[printers]
share for a Linux (BSD) system. Some of these options are already defaults; however, we have listed them anyway for illustrative purposes:
[global]
printing = BSD
print command = /usr/bin/lpr -P%p -r %s
printcap file = /etc/printcap
min print space = 2000
[printers]
path = /usr/spool/public
printable = true
guest ok = true
guest account = pcguest
Here, we've given Samba global options that specify the printing type (BSD), a print command to send data to the printer and remove a temporary file, our default printer capabilities file, and a minimum printing space of 2 megabytes.
In addition, we've created a
[printers]
share for each of the system printers. Our temporary spooling directory is specified by the
path
option:
/usr/spool/public. Each of the shares is marked as printable - this is necessary, even in the
[printers]
section. The two
guest
options are useful in the event that Samba is using share-level security: we allow guest access to the printer and we specify the guest user that Samba should use to execute print commands.