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.
Client/Server Configuration Options
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.
Locating the Interest List for lpstat, lpget, and cancel
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.
The following entry sets the interest list for the lpget, lpstat and
cancel commands to printer1, printer2 and printer3:
_all:all=printer1,printer2,printer3
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
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
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
The following entry sets the default destination to continue
searching for configuration information to destination printer1.
_default:use=printer1
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 PRINTERS.CONF(5)
NAME
printers.conf - system printing configuration database
SYNOPSIS
/etc/printers.conf
LDAP
ou=printers
NIS
printers.conf.byname
DESCRIPTION
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.
Entries
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.
Specifying Configuration Options
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.
Client/Server Configuration Options
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).
LP Server Options
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.
Print Queue Name Resolution
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)
Locating the Personal Default Destination
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.
Locating the Interest List for lpstat, lpget, and cancel
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.
EXAMPLES
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
FILES
/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
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+----------------+-----------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+----------------+-----------------+
|Stability Level | Stable |
+----------------+-----------------+
SEE ALSO
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 PRINTERS.CONF(5)