PRINTERS.CONF(5) File Formats and Configurations PRINTERS.CONF(5)

printers.conf - system printing configuration database

/etc/printers.conf

ou=printers

printers.conf.byname

The printers.conf file is the system printing configuration database. System administrators use printers.conf to describe destinations for the print client commands and the print protocol adaptor. A destination names a printer or class of printers. See lpadmin(8). The LP print spooler uses private LP configuration data for represented in the printers.conf database.

Each entry in printers.conf describes one destination. Entries are one line consisting of any number of fields separated by colons (`:') and terminated by a NEWLINE. The first field of each entry specifies the name of the destination and aliases to which the entry describes. Specify one or more names or aliases of the destination in this first field. Specify the destination using atomic names. URI-style and POSIX-style names are not acceptable. See standards(7). Separate destination names by pipe signs (`|').

Two destination names are reserved for special use in the first entry. Use _all to specify the interest list for lpget, lpstat, and cancel. Use _default to specify the default destination.

The remaining fields in an entry are key=value pairs. See Specifying Configuration Options for details regarding key=value pairs.

Empty lines can be included for readability. Entries can continue on to multiple lines by adding a backslash (`\') as the last character in the line. printers.conf can include comments. Comments have a pound sign (`#') as the first character in the line, and are terminated by a NEWLINE. Use the lpset command to create or modify printers.conf. See lpset(8). Do not make changes in printers.conf by using an editor.

key=value pairs are configuration options defined by the system administrator. key and value can be of arbitrary length. Separate key and value by the equal (`=') character.

The following client/server configuration options (represented as key=value pairs) are supported:

printer-uri-supported=scheme://endpoint

Provides the information necessary to contact the print service for the entry. The scheme generally identifies the print service or protocol to use. Currently this is limited to lpsched, ipp, and lpd but might be expanded in the future. Each of these schemes imposes a set of restrictions for specifying the endpoint and the functionality provided.

lpsched://localhost/printers/queue


This is URI form is used for print queues that are configured under the local LP service.

ipp://server[:port]/printers/queue
http://server:631/printers/queue
ipp://server[:port]/...

This URI form is used for print queues that are remotely accessible by way of the Internet Print Protocol. This protocol is the preferred method of accessing remote print queues because it provides the greatest functionality over the wire. The ipp uri scheme is specified in the internet print protocol specifications and is much more free form than listed above. The actual content and format of the endpoint is determined by the remote print service.

lpd://server/printers/queue[#Solaris]

This URI form is used for print queues that are remotely accessible by way of the BSD Print Protocol. Though limited in capability, this protocol is widely used between client and server. It provides maximum interoperability with remote print services. When used to communicate with print services on a Solaris print server, the optional #Solaris component of the URI indicates that Solaris protocol extensions can be used during print job submission.

If an entry does not contain a printer-uri-supported key/value pair, the bsdaddr value is converted to its equivalent uri form and a printer-uri-supported key/value pair is added to the resulting data returned to applications requesting printer configuration data.

bsdaddr=server,destination[,Solaris]

Sets the server and destination name. Sets if the client generates protocol extensions for use with the lp command (see lp(1)). Solaris specifies a Solaris print server extension. If Solaris is not specified, no protocol extensions are generated. server is the name of the host containing the queue for destination. destination is the atomic name by which the server knows the destination. If the configuration file contents are to be shared with legacy systems (Solaris 2.6 - Solaris 10), this key/value pair should be provided for backward compatibility.

use=destination

Sets the destination to continue searching for configuration information. destination is an atomic, URI-style (scheme://endpoint), or Posix-style name (server:printer).

all=destination_list

Sets the interest list for the lpget, lpstat, and cancel commands. destination_list is a comma-separated list of destinations. Specify destination using atomic, URI-style (scheme://endpoint), or Posix-style names (server:printer). See lpget(8), lpstat(1), and cancel(1).

The following LP configuration options (represented as key=value pairs) are supported:

user-equivalence=true|false

Sets whether or not usernames are considered equivalent when cancelling a print request submitted from a different host in a networked environment. true means that usernames are considered equivalent, and permits users to cancel a print requests submitted from a different host. user-equivalence is set to false by default. false means that usernames are not considered equivalent, and does not permit users cancel a print request submitted from a different host. If user-equivalence is set to false, print requests can only be cancelled by the users on the host on which the print request was generated or by the superuser on the print server.

Applications needing to resolve print queue names (destinations) to the associated print service and communications endpoint make use of a specific name resolution ordering. Destination names in URI and POSIX form are complete unto themselves and require no further resolution. Names in atomic form are resolved based on the printers database entry in the /etc/nsswitch.conf file. See nsswitch.conf(5)

The default destination is located differently depending on the command.

The lp command locates the default destination in the following order:

1.
lp command's -d destination option.
2.
LPDEST environment variable.
3.
PRINTER environment variable.
4.
_default destination in $HOME/.printers.
5.
_default destination in /etc/printers.conf.

The lpr, lpq, and lprm commands locate the default destination in the following order:

1.
lpr command's -P destination option.
2.
PRINTER environment variable.
3.
LPDEST environment variable.
4.
_default destination in $HOME/.printers.
5.
_default destination in /etc/printers.conf.

The lpget, lpstat, and cancel commands locate the interest list in the following order:

1.
_all list in $HOME/.printers.
2.
_all list in /etc/printers.conf.

Example 1 Setting the Interest List

The following entry sets the interest list for the lpget, lpstat and cancel commands to printer1, printer2 and printer3:


_all:all=printer1,printer2,printer3

Example 2 Setting the Server Name

The following entry sets the server name to server and printer name to ps_printer for destinations printer1 and ps. It does not generate BSD protocol extensions.


printer1|ps:bsdaddr=server,ps_printer

Example 3 Setting Server Name and Destination Name

The following entry sets the server name to server and destination name to pcl_printer, for destination printer2. It also generates Solaris protocol extensions.


printer2:printer-uri-supported=lpd//server/printers/pcl_printer#Solaris

Example 4 Setting Server Name and Destination Name with Continuous Search

The following entry sets the server name to server and destination name to new_printer, for destination printer3. It also sets the printer3 to continue searching for configuration information to printer another_printer.


printer3:bsdaddr=server,new_printer:use=another_printer

Example 5 Setting Default Destination

The following entry sets the default destination to continue searching for configuration information to destination printer1.


_default:use=printer1

Example 6 Using IPP as the URI

The following example uses IPP as the URI:


printer4:printer-uri-supported=ipp\://server/printers/queue

/etc/printers.conf

System configuration database

$HOME/.printers

User-configurable printer database

ou=printers

LDAP version of /etc/printers.conf

printers.conf.byname (NIS)

NIS version of /etc/printers.conf

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
Stability Level Stable

cancel(1), enable(1), lp(1), lpstat(1), lpq(1B), lpr(1B), lprm(1B), nsswitch.conf(5), printers(5), attributes(7), standards(7), accept(8), in.lpd(8), lpadmin(8), lpget(8), lpmove(8), lpset(8)

System Administration Guide: Basic Administration

February 21, 2023 OmniOS