Specifies the IPP operations that are being limited inside a Policy section. IPP operation names are listed below in the section "IPP OPERATION NAMES".
Specifies the HTTP methods that are being limited inside a Location section. HTTP method names are listed below in the section "HTTP METHOD NAMES".
.\"#LimitRequestBody
.TP5
\fBLimitRequestBody \fIsize\fR
Specifies the maximum size of print files, IPP requests, and HTML form data.
The default is "0" which disables the limit check.
.\"#Listen
.TP5
\fBListen \fIipv4-address\fB:\fIport\fR
.TP5
\fBListen [\fIipv6-address\fB]:\fIport\fR
.TP5
\fBListen *:\fIport\fR
.TP5
\fBListen \fI/path/to/domain/socket\fR
Listens to the specified address and port or domain socket path for connections.
Multiple Listen directives can be provided to listen on multiple addresses.
The Listen directive is similar to the Port directive but allows you to restrict access to specific interfaces or networks.
.\"#ListenBackLog
.TP5
\fBListenBackLog \fInumber\fR
Specifies the number of pending connections that will be allowed.
This normally only affects very busy servers that have reached the MaxClients limit, but can also be triggered by large numbers of simultaneous connections.
When the limit is reached, the operating system will refuse additional connections until the scheduler can accept the pending ones.
The default is the OS-defined default limit, typically either "5" for older operating systems or "128" for newer operating systems.
Paths are documented below in the section "LOCATION PATHS".
.\"#LogDebugHistory
.TP5
\fBLogDebugHistory \fInumber\fR
Specifies the number of debugging messages that are retained for logging if an error occurs in a print job. Debug messages are logged regardless of the LogLevel setting.
.\"#LogLevel
.TP5
\fBLogLevel \fRnone
.TP5
\fBLogLevel \fRemerg
.TP5
\fBLogLevel \fRalert
.TP5
\fBLogLevel \fRcrit
.TP5
\fBLogLevel \fRerror
.TP5
\fBLogLevel \fRwarn
.TP5
\fBLogLevel \fRnotice
.TP5
\fBLogLevel \fRinfo
.TP5
\fBLogLevel \fRdebug
.TP5
\fBLogLevel \fRdebug2
Specifies the level of logging for the ErrorLog file.
The value "none" stops all logging while "debug2" logs everything.
The default is "warn".
.\"#LogTimeFormat
.TP5
\fBLogTimeFormat \fRstandard
.TP5
\fBLogTimeFormat \fRusecs
Specifies the format of the date and time in the log files.
The value "standard" is the default and logs whole seconds while "usecs" logs microseconds.
.\"#MaxClients
.TP5
\fBMaxClients \fInumber\fR
Specifies the maximum number of simultaneous clients that are allowed by the scheduler.
The default is "100".
.\"#MaxClientPerHost
.TP5
\fBMaxClientsPerHost \fInumber\fR
Specifies the maximum number of simultaneous clients that are allowed from a
single address.
The default is the MaxClients value.
.\"#MaxCopies
.TP5
\fBMaxCopies \fInumber\fR
Specifies the maximum number of copies that a user can print of each job.
The default is "9999".
.\"#MaxHoldTime
.TP5
\fBMaxHoldTime \fIseconds\fR
Specifies the maximum time a job may remain in the "indefinite" hold state before it is canceled.
The default is "0" which disables cancellation of held jobs.
.\"#MaxJobs
.TP5
\fBMaxJobs \fInumber\fR
Specifies the maximum number of simultaneous jobs that are allowed.
Set to "0" to allow an unlimited number of jobs.
The default is "500".
.\"#MaxJobsPerPrinter
.TP5
\fBMaxJobsPerPrinter \fInumber\fR
Specifies the maximum number of simultaneous jobs that are allowed per printer.
The default is "0" which allows up to MaxJobs jobs per printer.
.\"#MaxJobsPerUser
.TP5
\fBMaxJobsPerUser \fInumber\fR
Specifies the maximum number of simultaneous jobs that are allowed per user.
The default is "0" which allows up to MaxJobs jobs per user.
.\"#MaxJobTime
.TP5
\fBMaxJobTime \fIseconds\fR
Specifies the maximum time a job may take to print before it is canceled.
Set to "0" to disable cancellation of "stuck" jobs.
The default is "10800" (3 hours).
.\"#MaxLogSize
.TP5
\fBMaxLogSize \fIsize\fR
Specifies the maximum size of the log files before they are rotated.
The value "0" disables log rotation.
The default is "1048576" (1MB).
.\"#MultipleOperationTimeout
.TP5
\fBMultipleOperationTimeout \fIseconds\fR
Specifies the maximum amount of time to allow between files in a multiple file print job.
The default is "900" (15 minutes).
.\"#Policy
.TP5
\fB<Policy \fIname\fB> \fR... \fB</Policy>\fR
Specifies access control for the named policy.
.\"#Port
.TP5
\fBPort \fInumber\fR
Listens to the specified port number for connections.
.\"#PreserveJobFiles
.TP5
\fBPreserveJobFiles Yes\fR
.TP5
\fBPreserveJobFiles No\fR
.TP5
\fBPreserveJobFiles \fIseconds\fR
Specifies whether job files (documents) are preserved after a job is printed.
If a numeric value is specified, job files are preserved for the indicated number of seconds after printing.
The default is "86400" (preserve 1 day).
.\"#PreserveJobHistory
.TP5
\fBPreserveJobHistory Yes\fR
.TP5
\fBPreserveJobHistory No\fR
.TP5
\fBPreserveJobHistory \fIseconds\fR
Specifies whether the job history is preserved after a job is printed.
If a numeric value is specified, the job history is preserved for the indicated number of seconds after printing.
If "Yes", the job history is preserved until the MaxJobs limit is reached.
The default is "Yes".
.\"#ReloadTimeout
.TP5
\fBReloadTimeout \fIseconds\fR
Specifies the amount of time to wait for job completion before restarting the scheduler.
The default is "30".
.\"#ServerAdmin
.TP5
\fBServerAdmin \fIemail-address\fR
Specifies the email address of the server administrator.
The \fIMinTLS\fR options set the minimum TLS version to support.
The \fIMaxTLS\fR options set the maximum TLS version to support.
Not all operating systems support TLS 1.3 at this time.
.\"#SSLPort
.TP5
\fBSSLPort \fIport\fR
Listens on the specified port for encrypted connections.
.\"#StrictConformance
.TP5
\fBStrictConformance Yes\fR
.TP5
\fBStrictConformance No\fR
Specifies whether the scheduler requires clients to strictly adhere to the IPP specifications.
The default is "No".
.\"#Timeout
.TP5
\fBTimeout \fIseconds\fR
Specifies the HTTP request timeout.
The default is "900" (15 minutes).
.\"#WebInterface
.TP5
\fBWebInterface yes\fR
.TP5
\fBWebInterface no\fR
Specifies whether the web interface is enabled.
The default is "No".
.SSHTTPMETHODNAMES
The following HTTP methods are supported by
.BRcupsd(8):
.TP5
GET
Used by a client to download icons and other printer resources and to access the CUPS web interface.
.TP5
HEAD
Used by a client to get the type, size, and modification date of resources.
.TP5
OPTIONS
Used by a client to establish a secure (SSL/TLS) connection.
.TP5
POST
Used by a client to submit IPP requests and HTML forms from the CUPS web interface.
.TP5
PUT
Used by a client to upload configuration files.
.SSIPPOPERATIONNAMES
The following IPP operations are supported by
.BRcupsd(8):
.TP5
CUPS\-Accept\-Jobs
Allows a printer to accept new jobs.
.TP5
CUPS\-Add\-Modify\-Class
Adds or modifies a printer class.
.TP5
CUPS\-Add\-Modify\-Printer
Adds or modifies a printer.
.TP5
CUPS\-Authenticate\-Job
Releases a job that is held for authentication.
.TP5
CUPS\-Delete\-Class
Deletes a printer class.
.TP5
CUPS\-Delete\-Printer
Deletes a printer.
.TP5
CUPS\-Get\-Classes
Gets a list of printer classes.
.TP5
CUPS\-Get\-Default
Gets the server default printer or printer class.
.TP5
CUPS\-Get\-Devices
Gets a list of devices that are currently available.
.TP5
CUPS\-Get\-Document
Gets a document file for a job.
.TP5
CUPS\-Get\-PPD
Gets a PPD file.
.TP5
CUPS\-Get\-PPDs
Gets a list of installed PPD files.
.TP5
CUPS\-Get\-Printers
Gets a list of printers.
.TP5
CUPS\-Move\-Job
Moves a job.
.TP5
CUPS\-Reject\-Jobs
Prevents a printer from accepting new jobs.
.TP5
CUPS\-Set\-Default
Sets the server default printer or printer class.
.TP5
Cancel\-Job
Cancels a job.
.TP5
Cancel\-Jobs
Cancels one or more jobs.
.TP5
Cancel\-My\-Jobs
Cancels one or more jobs creates by a user.
.TP5
Cancel\-Subscription
Cancels a subscription.
.TP5
Close\-Job
Closes a job that is waiting for more documents.
.TP5
Create\-Job
Creates a new job with no documents.
.TP5
Create\-Job\-Subscriptions
Creates a subscription for job events.
.TP5
Create\-Printer\-Subscriptions
Creates a subscription for printer events.
.TP5
Get\-Job\-Attributes
Gets information about a job.
.TP5
Get\-Jobs
Gets a list of jobs.
.TP5
Get\-Notifications
Gets a list of event notifications for a subscription.
.TP5
Get\-Printer\-Attributes
Gets information about a printer or printer class.
.TP5
Get\-Subscription\-Attributes
Gets information about a subscription.
.TP5
Get\-Subscriptions
Gets a list of subscriptions.
.TP5
Hold\-Job
Holds a job from printing.
.TP5
Hold\-New\-Jobs
Holds all new jobs from printing.
.TP5
Pause\-Printer
Stops processing of jobs by a printer or printer class.
.TP5
Pause\-Printer\-After\-Current\-Job
Stops processing of jobs by a printer or printer class after the current job is finished.
.TP5
Print\-Job
Creates a new job with a single document.
.TP5
Purge\-Jobs
Cancels one or more jobs and deletes the job history.
.TP5
Release\-Held\-New\-Jobs
Allows previously held jobs to print.
.TP5
Release\-Job
Allows a job to print.
.TP5
Renew\-Subscription
Renews a subscription.
.TP5
Restart\-Job
Reprints a job, if possible.
.TP5
Send\-Document
Adds a document to a job.
.TP5
Set\-Job\-Attributes
Changes job information.
.TP5
Set\-Printer\-Attributes
Changes printer or printer class information.
.TP5
Validate\-Job
Validates options for a new job.
.SSLOCATIONPATHS
The following paths are commonly used when configuring
.BRcupsd(8):
.TP5
/
The path for all get operations (get-printers, get-jobs, etc.)
.TP5
/admin
The path for all administration operations (add-printer, delete-printer, start-printer, etc.)
.TP5
/admin/conf
The path for access to the CUPS configuration files (cupsd.conf, client.conf, etc.)
.TP5
/admin/log
The path for access to the CUPS log files (access_log, error_log, page_log)
.TP5
/classes
The path for all printer classes
.TP5
/classes/name
The resource for the named printer class
.TP5
/jobs
The path for all jobs (hold-job, release-job, etc.)
.TP5
/jobs/id
The path for the specified job
.TP5
/printers
The path for all printers
.TP5
/printers/name
The path for the named printer
.TP5
/printers/name.png
The icon file path for the named printer
.TP5
/printers/name.ppd
The PPD file path for the named printer
.SSDIRECTIVESVALIDWITHINLOCATIONANDLIMITSECTIONS
The following directives may be placed inside Location and Limit sections in the \fBcupsd.conf\fR file:
.TP5
\fBAllow all\fR
.TP5
\fBAllow none\fR
.TP5
\fBAllow \fIhost.domain.com\fR
.TP5
\fBAllow *.\fIdomain.com\fR
.TP5
\fBAllow \fIipv4-address\fR
.TP5
\fBAllow \fIipv4-address\fB/\fInetmask\fR
.TP5
\fBAllow \fIipv4-address\fB/\fImm\fR
.TP5
\fBAllow [\fIipv6-address\fB]\fR
.TP5
\fBAllow [\fIipv6-address\fB]/\fImm\fR
.TP5
\fBAllow @IF(\fIname\fB)\fR
.TP5
\fBAllow @LOCAL\fR
Allows access from the named hosts, domains, addresses, or interfaces.
The @IF(name) form uses the current subnets configured for the named interface.
The @LOCAL form uses the current subnets configured for all interfaces that are not point-to-point, for example Ethernet and Wi-Fi interfaces are used but DSL and VPN interfaces are not.
The Order directive controls whether Allow lines are evaluated before or after Deny lines.
.TP5
\fBAuthType None\fR
.TP5
\fBAuthType Basic\fR
.TP5
\fBAuthType Default\fR
.TP5
\fBAuthType Negotiate\fR
Specifies the type of authentication required.
The value "Default" corresponds to the DefaultAuthType value.
.TP5
\fBDeny all\fR
.TP5
\fBDeny none\fR
.TP5
\fBDeny \fIhost.domain.com\fR
.TP5
\fBDeny *.\fIdomain.com\fR
.TP5
\fBDeny \fIipv4-address\fR
.TP5
\fBDeny \fIipv4-address\fB/\fInetmask\fR
.TP5
\fBDeny \fIipv4-address\fB/\fImm\fR
.TP5
\fBDeny [\fIipv6-address\fB]\fR
.TP5
\fBDeny [\fIipv6-address\fB]/\fImm\fR
.TP5
\fBDeny @IF(\fIname\fB)\fR
.TP5
\fBDeny @LOCAL\fR
Denies access from the named hosts, domains, addresses, or interfaces.
The @IF(name) form uses the current subnets configured for the named interface.
The @LOCAL form uses the current subnets configured for all interfaces that are not point-to-point, for example Ethernet and Wi-Fi interfaces are used but DSL and VPN interfaces are not.
The Order directive controls whether Deny lines are evaluated before or after Allow lines.
.TP5
\fBEncryption IfRequested\fR
.TP5
\fBEncryption Never\fR
.TP5
\fBEncryption Required\fR
Specifies the level of encryption that is required for a particular location.
The default value is "IfRequested".
.TP5
\fBOrder allow,deny\fR
Specifies that access is denied by default. Allow lines are then processed followed by Deny lines to determine whether a client may access a particular resource.
.TP5
\fBOrder deny,allow\fR
Specifies that access is allowed by default. Deny lines are then processed followed by Allow lines to determine whether a client may access a particular resource.
.TP5
\fBRequire group \fIgroup-name \fR[ \fIgroup-name \fR... ]
Specifies that an authenticated user must be a member of one of the named groups.
.TP5
\fBRequire user {\fIuser-name\fR|\fB@\fIgroup-name\fR} ...
Specifies that an authenticated user must match one of the named users or be a member of one of the named groups.
The group name "@SYSTEM" corresponds to the list of groups defined by the SystemGroup directive in the
.BRcups-files.conf(5)
file.
The group name "@OWNER" corresponds to the owner of the resource, for example the person that submitted a print job.
Note: The 'root' user is not special and must be granted privileges like any other user account.
.TP5
\fBRequire valid-user\fR
Specifies that any authenticated user is acceptable.
.TP5
\fBSatisfy all\fR
Specifies that all Allow, AuthType, Deny, Order, and Require conditions must be satisfied to allow access.
.TP5
\fBSatisfy any\fR
Specifies that any a client may access a resource if either the authentication (AuthType/Require) or address (Allow/Deny/Order) conditions are satisfied.
For example, this can be used to require authentication only for remote accesses.
.SSDIRECTIVESVALIDWITHINPOLICYSECTIONS
The following directives may be placed inside Policy sections in the \fBcupsd.conf\fR file:
Specifies the list of subscription values to make private.
The "default" values are "notify-events", "notify-pull-method", "notify-recipient-uri", "notify-subscriber-user-name", and "notify-user-data".
.SSDEPRECATEDDIRECTIVES
The following directives are deprecated and will be removed in a future release of CUPS:
.\"#Classification
.TP5
\fBClassification \fIbanner\fR
.br
Specifies the security classification of the server.
Any valid banner name can be used, including "classified", "confidential", "secret", "topsecret", and "unclassified", or the banner can be omitted to disable secure printing functions.
The default is no classification banner.
.\"#ClassifyOverride
.TP5
\fBClassifyOverride Yes\fR
.TP5
\fBClassifyOverride No\fR
.br
Specifies whether users may override the classification (cover page) of individual print jobs using the "job-sheets" option.
The default is "No".
.\"#PageLogFormat
.TP5
\fBPageLogFormat \fIformat-string\fR
Specifies the format of PageLog lines.
Sequences beginning with percent (%) characters are replaced with the corresponding information, while all other characters are copied literally.
The following percent sequences are recognized:
.nf
"%%" inserts a single percent character.
"%{name}" inserts the value of the specified IPP attribute.
"%C" inserts the number of copies for the current page.
"%P" inserts the current page number.
"%T" inserts the current date and time in common log format.
"%j" inserts the job ID.
"%p" inserts the printer name.
"%u" inserts the username.
.fi
The default is the empty string, which disables page logging.
The string "%p %u %j %T %P %C %{job-billing} %{job-originating-host-name} %{job-name} %{media} %{sides}" creates a page log with the standard items.
Use "%{job-impressions-completed}" to insert the number of pages (sides) that were printed, or "%{job-media-sheets-completed}" to insert the number of sheets that were printed.
.\"#RIPCache
.TP5
\fBRIPCache \fIsize\fR
Specifies the maximum amount of memory to use when converting documents into bitmaps for a printer.
The default is "128m".
.SHNOTES
File, directory, and user configuration directives that used to be allowed in the \fBcupsd.conf\fR file are now stored in the
.BRcups-files.conf(5)
file instead in order to prevent certain types of privilege escalation attacks.
.PP
The scheduler MUST be restarted manually after making changes to the \fBcupsd.conf\fR file.
On Linux this is typically done using the
.BRsystemctl(8)
command, while on macOS the
.BRlaunchctl(8)
command is used instead.
.PP
The @LOCAL macro name can be confusing since the system running
.Bcupsd
often belongs to a different set of subnets from its clients.
.SHCONFORMINGTO
The \fBcupsd.conf\fR file format is based on the Apache HTTP Server configuration file format.
.SHEXAMPLES
Log everything with a maximum log file size of 32 megabytes:
.nf
AccessLogLevel all
LogLevel debug2
MaxLogSize 32m
.fi
Require authentication for accesses from outside the 10. network: