Specifies the IPP operations that are being limited inside a Policy section. IPP operation names are listed below in the section "IPP OPERATION NAMES".
Note: "Listen *:\fIport\fR" and "Port \fIport\fR" effectively listen on all IP addresses, so you cannot combine them with Listen directives for explicit IPv4 or IPv6 addresses on the same port.
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 \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
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 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.
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.
.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: