The /etc/cups/cupsd.conf file contains configuration directives that control how the server functions. Each directive is listed on a line by itself followed by its value. Comments are introduced using the number sign ("#") character at the beginning of a line.
Since the server configuration file consists of plain text,
you can use your favorite text editor to make changes to it.
After making any changes, restart the cupsd(8)
process using the startup script for your operating system:
/etc/init.d/cups restart
/sbin/init.d/cups restart
sudo launchctl unload /System/Library/LaunchDaemons/org.cups.cupsd.plist sudo launchctl load /System/Library/LaunchDaemons/org.cups.cupsd.plist
You can also edit this file from the CUPS web interface, which automatically handles restarting the scheduler.
Note:The specification of time units ("w" for weeks, "h" for hours, etc.) in the various time interval directives is new in CUPS 1.6/OS X 10.8. Prior releases of CUPS only supported time intervals in seconds.
AccessLogLevel config AccessLogLevel actions AccessLogLevel all
The AccessLogLevel directive controls which requests are logged
to the access log file. The following levels are defined:
config; Log when printers and classes are added,
deleted, or modified and when configuration files are accessed or
updated.actions; Log when print jobs are submitted,
held, released, modified, or canceled, and any of the conditions
for config.all; Log all requests.The default access log level is actions.
<Location /path> ... Allow from All Allow from None Allow from *.example.com Allow from .example.com Allow from host.example.com Allow from nnn.* Allow from nnn.nnn.* Allow from nnn.nnn.nnn.* Allow from nnn.nnn.nnn.nnn Allow from nnn.nnn.nnn.nnn/mm Allow from nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm Allow from [xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx] Allow from [xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]/mmm Allow from @LOCAL Allow from @IF(name) </Location>
The Allow directive specifies a hostname, IP
address, or network that is allowed access to the server.
Allow directives are cumulative, so multiple
Allow directives can be used to allow access for
multiple hosts or networks.
Host and domain name matching require that you enable the HostNameLookups
directive.
The /mm notation specifies a CIDR netmask, as shown in
Table 1.
| mm | netmask | mm | netmask |
|---|---|---|---|
| 0 | 0.0.0.0 | 8 | 255.0.0.0 |
| 1 | 128.0.0.0 | 16 | 255.255.0.0 |
| 2 | 192.0.0.0 | 24 | 255.255.255.0 |
| ... | ... | 32 | 255.255.255.255 |
The @LOCAL name will allow access from all local
interfaces. The @IF(name) name will allow access
from the named interface. In both cases, CUPS only allows access
from the network that the interface(s) are configured for -
requests arriving on the interface from a foreign network will
not be accepted.
The Allow directive must appear inside a Location or Limit section.
<Location /path> ... AuthType None AuthType Basic AuthType Digest AuthType BasicDigest AuthType Negotiate </Location>
The AuthType directive defines the type of
authentication to perform:
None - No authentication should be
performed (default)Basic - Basic authentication should be
performed using the UNIX password and group filesDigest - Digest authentication should be
performed using the /etc/cups/passwd.md5
fileBasicDigest - Basic authentication
should be performed using the
/etc/cups/passwd.md5 fileNegotiate - Kerberos authentication
should be performedWhen using Basic, Digest,
BasicDigest, or Negotiate authentication,
clients connecting through the localhost interface can
also authenticate using certificates.
The AuthType directive must appear inside a Location or Limit section.
AutoPurgeJobs Yes AutoPurgeJobs No
The AutoPurgeJobs directive specifies whether or
not to purge completed jobs once they are no longer required for
quotas. This option has no effect if quotas are not enabled. The
default setting is No.
BrowseLocalProtocols all BrowseLocalProtocols none BrowseLocalProtocols dnssd
The BrowseLocalProtocols directive specifies the protocols to use when advertising local shared printers on the network. Multiple protocols can be specified by separating them with spaces. The default is "dnssd" on systems that support Bonjour and "none" on all others.
BrowseWebIF On BrowseWebIF Off
The BrowseWebIF directive controls whether the CUPS web
interface is advertised via DNS-SD. The default setting is
Off.
Browsing On Browsing Off
The Browsing directive controls whether or not printer sharing is enabled. The default setting is On.
Classification Classification classified Classification confidential Classification secret Classification topsecret Classification unclassified
The Classification directive sets the
classification level on the server. When this option is set, at
least one of the banner pages is forced to the classification
level, and the classification is placed on each page of output.
The default is no classification level.
ClassifyOverride Yes ClassifyOverride No
The ClassifyOverride directive specifies whether
users can override the default classification level on the
server. When the server classification is set, users can change
the classification using the job-sheets option and
can choose to only print one security banner before or after the
job. If the job-sheets option is set to
none then the server default classification is
used.
The default is to not allow classification overrides.
DefaultAuthType Basic DefaultAuthType BasicDigest DefaultAuthType Digest DefaultAuthType Negotiate
The DefaultAuthType directive specifies the type
of authentication to use for IPP operations that require a
username. The default is Basic.
DefaultEncryption Never DefaultEncryption IfRequested DefaultEncryption Required
The DefaultEncryption directive specifies the
type of encryption to use when performing authentication. The
default is Required.
DefaultLanguage de DefaultLanguage en DefaultLanguage es DefaultLanguage fr DefaultLanguage it
The DefaultLanguage directive specifies the
default language to use for client connections. Setting the
default language also sets the default character set if a
language localization file exists for it. The default language
is "en" for English.
DefaultPaperSize Letter DefaultPaperSize A4 DefaultPaperSize Auto DefaultPaperSize None
The DefaultPaperSize directive specifies the default paper
size to use when creating new printers. The default is Auto
which uses a paper size appropriate for the system default locale. A value
of None tells the scheduler to not set the default paper
size.
DefaultPolicy default DefaultPolicy authenticated DefaultPolicy foo
The DefaultPolicy directive specifies the default
policy to use for IPP operation. The default is
default. CUPS also includes a policy called
authenticated that requires a username and password for printing
and other job operations.
DefaultShared Yes DefaultShared No
The DefaultShared directive specifies whether printers are shared (published) by default. The default is Yes.
<Location /path> .. Deny from All Deny from None Deny from *.example.com Deny from .example.com Deny from host.example.com Deny from nnn.* Deny from nnn.nnn.* Deny from nnn.nnn.nnn.* Deny from nnn.nnn.nnn.nnn Deny from nnn.nnn.nnn.nnn/mm Deny from nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm Deny from [xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx] Deny from [xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]/mmm Deny from @LOCAL Deny from @IF(name) </Location>
The Deny directive specifies a hostname, IP
address, or network that is denied access to the server.
Deny directives are cumulative, so multiple
Deny directives can be used to deny access for
multiple hosts or networks.
Host and domain name matching require that you enable the HostNameLookups
directive.
The /mm notation specifies a CIDR netmask, a shown in
Table 1.
The @LOCAL name will deny access from all local
interfaces. The @IF(name) name will deny access from
the named interface. In both cases, CUPS only denies access from
the network that the interface(s) are configured for - requests
arriving on the interface from a foreign network will
not be denied.
The Deny directive must appear inside a Location or Limit section.
DirtyCleanInterval 1w DirtyCleanInterval 1d DirtyCleanInterval 1h DirtyCleanInterval 1m DirtyCleanInterval 30 DirtyCleanInterval 0
The DirtyCleanInterval directive specifies the amount of time to wait before updating configuration and state files for printers, classes, subscriptions, and jobs in seconds (no suffix), minutes ("m" suffix), hours ("h" suffix), days ("d" suffix), or weeks ("w" suffix). A value of 0 causes the update to occur as soon as possible, typically within a few milliseconds.
The default value is 30 (30 seconds).
<Location /path> ... Encryption Never Encryption IfRequested Encryption Required </Location>
The Encryption directive must appear instead a Location or Limit section and specifies the
encryption settings for that location. The default setting is
IfRequested for all locations.
ErrorPolicy abort-job ErrorPolicy retry-job ErrorPolicy stop-printer
The ErrorPolicy directive defines the default policy that
is used when a backend is unable to send a print job to the
printer.
The following values are supported:
abort-job - Abort the job and proceed
with the next job in the queueretry-job - Retry the job after waiting
for N seconds; the cupsd.conf JobRetryInterval
directive controls the value of Nretry-this-job - Retry the current job immediately
and indefinitely.stop-printer - Stop the printer and keep
the job for future printing; this is the default
valueFilterLimit 0 FilterLimit 200 FilterLimit 1000
The FilterLimit directive sets the maximum cost
of all running job filters. It can be used to limit the number of
filter programs that are run on a server to minimize disk,
memory, and CPU resource problems. A limit of 0 disables filter
limiting.
An average print to a non-PostScript printer needs a filter limit of about 200. A PostScript printer needs about half that (100). Setting the limit below these thresholds will effectively limit the scheduler to printing a single job at any time.
The default limit is 0.
FilterNice 0 FilterNice 10 FilterNice 19
The FilterNice directive sets the nice(1)
value to assign to filter processes. The nice value ranges from
0, the highest priority, to 19, the lowest priority. The default
is 0.
GSSServiceName http GSSServiceName ipp
The GSSServiceName directive sets the Kerberos service name to use. The default is http for compatibility with Microsoft Windows.
HostNameLookups On HostNameLookups Off HostNameLookups Double
The HostNameLookups directive controls whether or
not CUPS looks up the hostname for connecting clients. The
Double setting causes CUPS to verify that the
hostname resolved from the address matches one of the addresses
returned for that hostname. Double lookups also
prevent clients with unregistered addresses from connecting to
your server.
The default is Off to avoid the potential server
performance problems with hostname lookups. Set this option to
On or Double only if absolutely
required.
Include filename Include /foo/bar/filename
The Include directive includes the named file in
the cupsd.conf file. If no leading path is provided,
the file is assumed to be relative to the ServerRoot directory.
JobPrivateAccess all
JobPrivateAccess default
JobPrivateAccess {user|@group|@ACL|@OWNER|@SYSTEM}+
The JobPrivateAccess directive specifies the access list for a
job's private values. The "default" access list is "@OWNER @SYSTEM". "@ACL" maps
to the printer's requesting-user-name-allowed or requesting-user-name-denied
values.
The JobPrivateAccess directive must appear inside a Policy section.
JobPrivateValues all JobPrivateValues default JobPrivateValues none JobPrivateValues attribute-name-1 [ ... attribute-name-N ]
The JobPrivateValues directive specifies the list of job values
to make private. The "default" values are "job-name",
"job-originating-host-name", "job-originating-user-name", and "phone".
The JobPrivateValues directive must appear inside a Policy section.