[cups.general] Need help with CUP's errors

Marc Chamberlin marc at marcchamberlin.com
Fri Oct 30 08:49:48 PDT 2009


Hello List -

I am trying to get CUPS servers set up on my SOHO network and so far no 
joy in getting it to work properly. So hopefully some nice guru will 
help me get through these woods. Sorry this is so long, but I figure it 
is best to give as much info as I can.

I think I probably am facing a number of issues, so will start with a 
basic description of my network and then try to tackle issues one at a 
time. My network consists of a number of Linux (SuSE), Windows (XP, 
2000, and Vista) systems. One of the Linux computers is acting as a 
central Print (CUPS) server. A Windows2000 computer is the one to which 
my printer is actually attached. In order for Linux to use this printer 
(a Canon Pixma MP780) I have installed Turboprint on the central 
computer. My shaky understanding of Turboprint is that is supplies an 
underlying driver to format print jobs correctly before the CUP's server 
sends the jobs on to the Win2K computer.

So far, if I submit a print job on the central Linux computer, the CUPS 
server on that computer will process the job correctly and send it on to 
the Win2K system, and the printout will take place. All Windows 
computers connect directly to the Win2K system for printing and they all 
work fine also.

However the trouble I am having is when I try to submit a print job from 
one of my Linux systems (other than the central one) One each of these 
Linux systems, I have tried various methods of connecting to the central 
Linux computer and so far no joy. My current attempt is to configure the 
CUPs server on each of the Linux computers to connect to Samba on the 
central computer, and have Samba forward the print request on to CUPS on 
the same central computer. (The folks on the SuSE users group said that 
they have experienced a lot of difficulties trying to set up a CUPS 
client on a Linux system and connect directly to the CUPS server and 
advised me to go through Samba instead.)

I suspect my main difficulties stem from authentication issues, but I am 
not certain. So my first question is - IS there any way to trace the 
authentication process to determine WHY it may be failing? Or 
alternatively, to determine that it is succeeding?

Looking at the CUPS error.log file I am also seeing an error message 
that I probably should tackle first. Upon starting the CUPS server on 
one of my other Linux systems, I see the following error about a failure 
to bind a socket for address because the address is already in use.

Say what? I got no idea what that means really, or why it is happening. 
This is in the log right after I boot up the system, and repeats if I 
restart the CUPS server. How do I get to the bottom of this, or is it 
something I can ignore? There are also a couple other error messages 
about a server.crt and server.key files that don't exist. Why and what 
should I do about them?

I [29/Oct/2009:19:27:30 -0700] Scheduler shutting down normally.
I [29/Oct/2009:19:27:30 -0700] Saving job cache file 
"/etc/cups/yes/job.cache"...
E [29/Oct/2009:19:27:35 -0700] File or directory for "ServerCertificate 
/etc/cups/ssl/server.crt" on line 142 does not exist!
E [29/Oct/2009:19:27:35 -0700] File or directory for "ServerKey 
/etc/cups/ssl/server.key" on line 153 does not exist!
I [29/Oct/2009:19:27:35 -0700] Loaded configuration file 
"/etc/cups/cupsd.conf"
I [29/Oct/2009:19:27:35 -0700] Configured for up to 100 clients.
I [29/Oct/2009:19:27:35 -0700] Allowing up to 100 client connections per 
host.
I [29/Oct/2009:19:27:35 -0700] Using policy "default" as the default!
I [29/Oct/2009:19:27:35 -0700] Full reload is required.
I [29/Oct/2009:19:27:35 -0700] Loaded MIME database from '/etc/cups': 37 
types, 40 filters...
I [29/Oct/2009:19:27:35 -0700] Loading job cache file 
"/etc/cups/yes/job.cache"...
I [29/Oct/2009:19:27:35 -0700] Full reload complete.
I [29/Oct/2009:19:27:35 -0700] Cleaning out old temporary files in 
"/var/spool/cups/tmp"...
I [29/Oct/2009:19:27:35 -0700] Listening to 127.0.0.1:631 on fd 1...
E [29/Oct/2009:19:27:35 -0700] Unable to bind socket for address 
127.0.0.1:631 - Address already in use.
I [29/Oct/2009:19:27:35 -0700] Listening to ::1:631 on fd 3...
I [29/Oct/2009:19:27:35 -0700] Listening to /var/run/cups/cups.sock on 
fd 4...
I [29/Oct/2009:19:27:35 -0700] Resuming new connection processing...


Once I get the system up and running, and try to send a print job, the 
error.log file shows me that the print job was not authorized. I have 
tried to study and understand the documentation on cupsd.conf and to the 
best of my understanding I set the Authtype parameter to None in all the 
sections that I think are appropriate. So if Authtype is None, why do I 
get an error message such as what is shown here?

I [29/Oct/2009:19:23:04 -0700] Resuming new connection processing...
E [29/Oct/2009:19:24:24 -0700] Print-Job: Unauthorized
I [29/Oct/2009:19:24:24 -0700] [Job 136] Adding start banner page "none".
I [29/Oct/2009:19:24:24 -0700] [Job 136] Adding job file of type text/plain.
I [29/Oct/2009:19:24:24 -0700] [Job 136] Adding end banner page "none".
I [29/Oct/2009:19:24:24 -0700] [Job 136] Queued on "tp0" by "marc".
I [29/Oct/2009:19:24:24 -0700] [Job 136] Started backend 
/usr/lib64/cups/backend/smb (PID 14937)
I [29/Oct/2009:19:24:24 -0700] [Job 136] Completed successfully.


This, to my untrained eyes, seems to be giving me a conflicting message 
when a print job was submitted! On the one hand there is an error 
message saying the print job was unathorized. On the other hand there is 
a message saying the job completed successfully! So I am confused! And I 
will be the first to admit I do not understand all the documentation I 
have tried to read. The stuff on authentication just gives me a 
splitting headache trying to understand! Sigh...

I know someone will probably ask for it so here is my cupsd.conf file 
from one of my Linux systems. I figure I should start here and then 
worry about what is happening on the central server later....

# CUPS configuration file, generated by CUPS configuration tool.
# This tool is part of KDEPrint, the printing framework for KDE
# since version 2.2.2 and is used by the CUPS supporting module
# in KDEPrint. The predecessors to KDEPrint in former KDE releases
# were KUPS and QtCUPS; they are deprecated and no longer maintained.
#
# Author: Michael Goffioul
#
# Web site: http://printing.kde.org/
#
########################################################################
#                                                                      #
# This is the CUPS configuration file.  If you are familiar with       #
# Apache or any of the other popular web servers, we've followed the   #
# same format.  Any configuration variable used here has the same      #
# semantics as the corresponding variable in Apache.  If we need       #
# different functionality then a different name is used to avoid       #
# confusion...                                                         #
#                                                                      #
########################################################################
#

# Server

# Server name (ServerName)
#
# The hostname of your server, as advertised to the world.
# By default CUPS will use the hostname of the system.
#
# To set the default server used by clients, see the client.conf file.
#
# ex: myhost.domain.com
#
#ServerName myhost.domain.com


# Server administrator (ServerAdmin)
#
# The email address to send all complaints or problems to.
# By default CUPS will use "root at hostname".
#
# ex: root at myhost.com
#
#ServerAdmin root at your.domain.com


# Classification (Classification)
#
# The classification level of the server.  If set, this
# classification is displayed on all pages, and raw printing is disabled.
# The default is the empty string.
#
# ex: confidential
#
#Classification classified

Classification none

# Allow overrides (ClassifyOverride)
#
# Whether to allow users to override the classification
# on printouts. If enabled, users can limit banner pages to before or
# after the job, and can change the classification of a job, but cannot
# completely eliminate the classification or banners.
#
# The default is off.
#
#ClassifyOverride off


# Default character set (DefaultCharset)
#
# The default character set to use. If not specified,
# defaults to utf-8.  Note that this can also be overridden in
# HTML documents...
#
# ex: utf-8
#
#DefaultCharset utf-8

DefaultCharset UTF-8

# Default language (DefaultLanguage)
#
# The default language if not specified by the browser.
# If not specified, the current locale is used.
#
# ex: en
#
#DefaultLanguage en

DefaultLanguage en

# Printcap file (Printcap)
#
# The name of the printcap file.  Default is no filename.
# Leave blank to disable printcap file generation.
#
# ex: /etc/printcap
#
#Printcap /etc/printcap

Printcap /etc/printcap


PrintcapFormat BSD

# Security

# Remote root user (RemoteRoot)
#
# The name of the user assigned to unauthenticated accesses
# from remote systems.  By default "remroot".
#
# ex: remroot
#
#RemoteRoot remroot

RemoteRoot remroot

# System group (SystemGroup)
#
# The group name for "System" (printer administration)
# access.  The default varies depending on the operating system, but
# will be sys, system, or root (checked for in that order).
#
# ex: sys
#
#SystemGroup sys

SystemGroup sys root

# Encryption certificate (ServerCertificate)
#
# The file to read containing the server's certificate.
# Defaults to "/etc/cups/ssl/server.crt".
#
# ex: /etc/cups/ssl/server.crt
#
#ServerCertificate /etc/cups/ssl/server.crt

ServerCertificate /etc/cups/ssl/server.crt

# Encryption key (ServerKey)
#
# The file to read containing the server's key.
# Defaults to "/etc/cups/ssl/server.key".
#
# ex: /etc/cups/ssl/server.key
#
#ServerKey /etc/cups/ssl/server.key

ServerKey /etc/cups/ssl/server.key

# Access permissions
#
# Access permissions for each directory served by the scheduler.
# Locations are relative to DocumentRoot...
#
# AuthType: the authorization to use:
#
#    None   - Perform no authentication
#    Basic  - Perform authentication using the HTTP Basic method.
#    Digest - Perform authentication using the HTTP Digest method.
#
#    (Note: local certificate authentication can be substituted by
#           the client for Basic or Digest when connecting to the
#           localhost interface)
#
# AuthClass: the authorization class; currently only Anonymous, User,
# System (valid user belonging to group SystemGroup), and Group
# (valid user belonging to the specified group) are supported.
#
# AuthGroupName: the group name for "Group" authorization.
#
# Order: the order of Allow/Deny processing.
#
# Allow: allows access from the specified hostname, domain, IP address, or
# network.
#
# Deny: denies access from the specified hostname, domain, IP address, or
# network.
#
# Both "Allow" and "Deny" accept the following notations for addresses:
#
#     All
#     None
#     *.domain.com
#     .domain.com
#     host.domain.com
#     nnn.*
#     nnn.nnn.*
#     nnn.nnn.nnn.*
#     nnn.nnn.nnn.nnn
#     nnn.nnn.nnn.nnn/mm
#     nnn.nnn.nnn.nnn/mmm.mmm.mmm.mmm
#
# The host and domain address require that you enable hostname lookups
# with "HostNameLookups On" above.
#
# Encryption: whether or not to use encryption; this depends on having
# the OpenSSL library linked into the CUPS library and scheduler.
#
# Possible values:
#
#     Always       - Always use encryption (SSL)
#     Never        - Never use encryption
#     Required     - Use TLS encryption upgrade
#     IfRequested  - Use encryption if the server requests it
#
# The default value is "IfRequested".
#
#<Location [resource_name]>
#
# You may wish to limit access to printers and classes, either with Allow
# and Deny lines, or by requiring a username and password.
#
#
## Anonymous access (default)
#AuthType None
#
## Require a username and password (Basic authentication)
#AuthType Basic
#AuthClass User
#
## Require a username and password (Digest/MD5 authentication)
#AuthType Digest
#AuthClass User
#
## Restrict access to local domain
#Order Deny,Allow
#Deny From All
#Allow From .mydomain.com
#
## Use encryption if requested
#Encryption IfRequested
#</Location>

<Location />
Encryption IfRequested
Satisfy All
Order allow,deny
Allow From @LOCAL
</Location>
<Location /admin>
Encryption Required
Satisfy All
Order allow,deny
</Location>
<Location /admin/conf>
Require user @SYSTEM
Encryption IfRequested
Satisfy All
Order allow,deny
</Location>

# Network

# Hostname lookups (HostNameLookups)
#
# Whether or not to do lookups on IP addresses to get a
# fully-qualified hostname.  This defaults to Off for performance reasons...
#
# ex: On
#
#HostNameLookups On

HostnameLookups Off

# Keep alive (KeepAlive)
#
# Whether or not to support the Keep-Alive connection
# option.  Default is on.
#
# ex: On
#
#KeepAlive On

KeepAlive On

# Keep-alive timeout (KeepAliveTimeout)
#
# The timeout (in seconds) before Keep-Alive connections are
# automatically closed.  Default is 60 seconds.
#
# ex: 60
#
#KeepAliveTimeout 60

KeepAliveTimeout 60

# Max clients (MaxClients)
#
# Controls the maximum number of simultaneous clients that
# will be handled.  Defaults to 100.
#
# ex: 100
#
#MaxClients 100

MaxClients 100

# Max request size (MaxRequestSize)
#
# Controls the maximum size of HTTP requests and print files.
# Set to 0 to disable this feature (defaults to 0).
#
# ex: 0
#
#MaxRequestSize 0

MaxRequestSize 0m

# Client timeout (Timeout)
#
# The timeout (in seconds) before requests time out.  Default is 300 
seconds.
#
# ex: 300
#
#Timeout 300

Timeout 300

# Listen to (Port/Listen)
#
# Ports/addresses that are listened to.  The default port 631 is reserved
# for the Internet Printing Protocol (IPP) and is what is used here.
#
# You can have multiple Port/Listen lines to listen to more than one
# port or address, or to restrict access.
#
# Note: Unfortunately, most web browsers don't support TLS or HTTP Upgrades
# for encryption.  If you want to support web-based encryption you will
# probably need to listen on port 443 (the "HTTPS" port...).
#
# ex: 631, myhost:80, 1.2.3.4:631
#
#    Port 80
#    Port 631
#    Listen hostname
#    Listen hostname:80
#    Listen hostname:631
#    Listen 1.2.3.4
#    Listen 1.2.3.4:631
#
#Port 631

Listen localhost:631
Listen /var/run/cups/cups.sock

# Log

# Access log (AccessLog)
#
# The access log file; if this does not start with a leading /
# then it is assumed to be relative to ServerRoot.  By default set to
# "/var/log/cups/access_log".
#
# You can also use the special name syslog to send the output to the
# syslog file or daemon.
#
# ex: /var/log/cups/access_log
#
#AccessLog /var/log/cups/access_log

AccessLog /var/log/cups/access_log

# Error log (ErrorLog)
#
# The error log file; if this does not start with a leading /
# then it is assumed to be relative to ServerRoot.  By default set to
# "/var/log/cups/error_log".
#
# You can also use the special name syslog to send the output to the
# syslog file or daemon.
#
# ex: /var/log/cups/error_log
#
#ErrorLog /var/log/cups/error_log

ErrorLog /var/log/cups/error_log

# Page log (PageLog)
#
# The page log file; if this does not start with a leading /
# then it is assumed to be relative to ServerRoot.  By default set to
# "/var/log/cups/page_log".
#
# You can also use the special name syslog to send the output to the
# syslog file or daemon.
#
# ex: /var/log/cups/page_log
#
#PageLog /var/log/cups/page_log

PageLog /var/log/cups/page_log

# Max log size (MaxLogSize)
#
# Controls the maximum size of each log file before they are
# rotated.  Defaults to 1048576 (1MB).  Set to 0 to disable log rotating.
#
# ex: 1048576
#
#MaxLogSize 0

MaxLogSize 1m

# Log level (LogLevel)
#
# Controls the number of messages logged to the ErrorLog
# file and can be one of the following:
#
#     debug2:     Log everything.
#     debug:     Log almost everything.
#     info:      Log all requests and state changes.
#     warn:      Log errors and warnings.
#     error:     Log only errors.
#     none:      Log nothing.
#
# ex: info
#
#LogLevel info

LogLevel info

# Jobs

# Preserve job history (PreserveJobHistory)
#
# Whether or not to preserve the job history after a
# job is completed, canceled, or stopped.  Default is Yes.
#
# ex: Yes
#
#PreserveJobHistory Yes

PreserveJobHistory On

# Preserve job files (PreserveJobFiles)
#
# Whether or not to preserve the job files after a
# job is completed, canceled, or stopped.  Default is No.
#
# ex: No
#
#PreserveJobFiles No

PreserveJobFiles Off

# Auto purge jobs (AutoPurgeJobs)
#
# Automatically purge jobs when not needed for quotas.
# Default is No.
#
#AutoPurgeJobs No

AutoPurgeJobs No

# Max jobs (MaxJobs)
#
# Maximum number of jobs to keep in memory (active and completed).
# Default is 0 (no limit).
#
#MaxJobs 0

MaxJobs 0

# Max jobs per printer (MaxJobsPerPrinter)
#
# The MaxJobsPerPrinter directive controls the maximum number of active
# jobs that are allowed for each printer or class. Once a printer or class
# reaches the limit, new jobs will be rejected until one of the active jobs
# is completed, stopped, aborted, or canceled.
#
# Setting the maximum to 0 disables this functionality.
# Default is 0 (no limit).
#
#
#MaxJobsPerPrinter 0

MaxJobsPerPrinter 0

# Max jobs per user (MaxJobsPerUser)
#
# The MaxJobsPerUser directive controls the maximum number of active
# jobs that are allowed for each user. Once a user reaches the limit, new
# jobs will be rejected until one of the active jobs is completed, stopped,
# aborted, or canceled.
#
# Setting the maximum to 0 disables this functionality.
# Default is 0 (no limit).
#
#
#MaxJobsPerUser 0

MaxJobsPerUser 0

# Filter

# User (User)
#
# The user the server runs under.  Normally this
# must be lp, however you can configure things for another user
# as needed.
#
# Note: the server must be run initially as root to support the
# default IPP port of 631.  It changes users whenever an external
# program is run...
#
# ex: lp
#
#User lp

User lp

# Group (Group)
#
# The group the server runs under.  Normally this
# must be sys, however you can configure things for another
# group as needed.
#
# ex: sys
#
#Group sys

Group lp

# RIP cache (RIPCache)
#
# The amount of memory that each RIP should use to cache
# bitmaps.  The value can be any real number followed by "k" for
# kilobytes, "m" for megabytes, "g" for gigabytes, or "t" for tiles
# (1 tile = 256x256 pixels).  Defaults to "8m" (8 megabytes).
#
# ex: 8m
#
#RIPCache 8m

RIPCache 8m

# Filter limit (FilterLimit)
#
# Sets the maximum cost of all job filters that can be run
# at the same time.  A limit of 0 means no limit.  A typical job may need
# a filter limit of at least 200; limits less than the minimum required
# by a job force a single job to be printed at any time.
#
# The default limit is 0 (unlimited).
#
# ex: 200
#
#FilterLimit 0

FilterLimit 0

# Directories

# Data directory (DataDir)
#
# The root directory for the CUPS data files.
# By default /usr/share/cups.
#
# ex: /usr/share/cups
#
#DataDir /usr/share/cups

DataDir /usr/share/cups

# Document directory (DocumentRoot)
#
# The root directory for HTTP documents that are served.
# By default the compiled-in directory.
#
# ex: /usr/share/cups/doc
#
#DocumentRoot /usr/share/cups/doc

DocumentRoot /usr/share/cups/doc

# Font path (FontPath)
#
# The path to locate all font files (currently only for pstoraster).
# By default /usr/share/cups/fonts.
#
# ex: /usr/share/cups/fonts
#
#FontPath /usr/share/cups/fonts


# Request directory (RequestRoot)
#
# The directory where request files are stored.
# By default /var/spool/cups.
#
# ex: /var/spool/cups
#
#RequestRoot /var/spool/cups

RequestRoot /var/spool/cups

# Server binaries (ServerBin)
#
# The root directory for the scheduler executables.
# By default /usr/lib/cups or /usr/lib32/cups (IRIX 6.5).
#
# ex: /usr/lib/cups
#
#ServerBin /usr/lib/cups

ServerBin /usr/lib64/cups

# Server files (ServerRoot)
#
# The root directory for the scheduler.
# By default /etc/cups.
#
# ex: /etc/cups
#
#ServerRoot /etc/cups

ServerRoot /etc/cups

# Temporary files (TempDir)
#
# The directory to put temporary files in. This directory must be
# writable by the user defined above!  Defaults to "/var/spool/cups/tmp" or
# the value of the TMPDIR environment variable.
#
# ex: /var/spool/cups/tmp
#
#TempDir /var/spool/cups/tmp

TempDir /var/spool/cups/tmp

# Browsing

# Use browsing (Browsing)
#
# Whether or not to listen to printer
# information from other CUPS servers.
#
#
# Enabled by default.
#
#
# Note: to enable the sending of browsing
# information from this CUPS server to the LAN,
# specify a valid BrowseAddress.
#
#
# ex: On
#
#Browsing On

Browsing On

# Browse protocols (BrowseProtocols)
#
# Which protocols to use for browsing.  Can be
# any of the following separated by whitespace and/or commas:
#
#     all  - Use all supported protocols.
#     cups - Use the CUPS browse protocol.
#     slp  - Use the SLPv2 protocol.
#
# The default is cups.
#
# Note: If you choose to use SLPv2, it is strongly recommended that
#       you have at least one SLP Directory Agent (DA) on your
#       network.  Otherwise, browse updates can take several seconds,
#       during which the scheduler will not response to client
#       requests.
#
#BrowseProtocols cups

BrowseProtocols CUPS

# Browse port (BrowsePort)
#
# The port used for UDP broadcasts.  By default this is
# the IPP port; if you change this you need to do it on all servers.
# Only one BrowsePort is recognized.
#
# ex: 631
#
#BrowsePort 631

BrowsePort 631

# Browse interval (BrowseInterval)
#
# The time between browsing updates in seconds.  Default
# is 30 seconds.
#
# Note that browsing information is sent whenever a printer's state changes
# as well, so this represents the maximum time between updates.
#
# Set this to 0 to disable outgoing broadcasts so your local printers are
# not advertised but you can still see printers on other hosts.
#
# ex: 30
#
#BrowseInterval 30

BrowseInterval 30

# Browse timeout (BrowseTimeout)
#
# The timeout (in seconds) for network printers - if we don't
# get an update within this time the printer will be removed
# from the printer list.  This number definitely should not be
# less the BrowseInterval value for obvious reasons.  Defaults
# to 300 seconds.
#
# ex: 300
#
#BrowseTimeout 300

BrowseTimeout 300

# Browse addresses (BrowseAddress)
#
# Specifies a broadcast address to be used.  By
# default browsing information is broadcast to all active interfaces.
#
# Note: HP-UX 10.20 and earlier do not properly handle broadcast unless
# you have a Class A, B, C, or D netmask (i.e. no CIDR support).
#
# ex: x.y.z.255, x.y.255.255
#
#BrowseAddress x.y.z.255
#BrowseAddress x.y.255.255
#BrowseAddress x.255.255.255

BrowseAllow all
BrowseAddress @LOCAL

# Browse order (BrowseOrder)
#
# Specifies the order of BrowseAllow/BrowseDeny comparisons.
#
# ex: allow,deny
#
#BrowseOrder allow,deny
#BrowseOrder deny,allow

BrowseOrder allow,deny

# Implicit classes (ImplicitClasses)
#
# Whether or not to use implicit classes.
#
# Printer classes can be specified explicitly in the classes.conf
# file, implicitly based upon the printers available on the LAN, or
# both.
#
# When ImplicitClasses is On, printers on the LAN with the same name
# (e.g. Acme-LaserPrint-1000) will be put into a class with the same
# name. This allows you to setup multiple redundant queues on a LAN
# without a lot of administrative difficulties.  If a user sends a
# job to Acme-LaserPrint-1000, the job will go to the first available
# queue.
#
# Enabled by default.
#
#ImplicitClasses Off

ImplicitClasses On

# Use "any" classes (ImplicitAnyClasses)
#
# Whether or not to create AnyPrinter implicit
# classes.
#
# When ImplicitAnyClasses is On and a local queue of the same name
# exists, e.g. "printer", "printer at server1", "printer at server1", then
# an implicit class called "Anyprinter" is created instead.
#
# When ImplicitAnyClasses is Off, implicit classes are not created
# when there is a local queue of the same name.
#
# Disabled by default.
#
#ImplicitAnyCLasses Off

ImplicitAnyClasses Off

# Hide implicit members (HideImplicitMembers)
#
# Whether or not to show the members of an
# implicit class.
#
# When HideImplicitMembers is On, any remote printers that are
# part of an implicit class are hidden from the user, who will
# then only see a single queue even though many queues will be
# supporting the implicit class.
#
# Enabled by default.
#
#HideImplicitMembers On

HideImplicitMembers Yes

# Use short names (BrowseShortNames)
#
# Whether or not to use "short" names for remote printers
# when possible (e.g. "printer" instead of "printer at host").  Enabled by
# default.
#
# ex: Yes
#
#BrowseShortNames Yes

BrowseShortNames Yes

# Unknown
defaultauthtype Basic
<policy default>

<limit Send-Document Send-URI Hold-Job Release-Job Restart-Job 
Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription 
Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job 
Suspend-Current-Job Resume-Job CUPS-Move-Job>
authtype None
order deny,allow
</limit>

<limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class 
CUPS-Delete-Class CUPS-Set-Default>
authtype Default
require user @SYSTEM
order deny,allow
</limit>

<limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer 
Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs 
Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer 
Startup-Printer Promote-Job Schedule-Job-After CUPS-Accept-Jobs 
CUPS-Reject-Jobs>
authtype None
order deny,allow
</limit>

<limit Cancel-Job CUPS-Authenticate-Job>
authtype None
order deny,allow
</limit>

<limit All>
authtype None
order deny,allow
</limit>

</policy>


Thanks in advance for any and all offers of help!  Marc Chamberlin







More information about the cups mailing list