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.