Я настраиваю приложение python для мониторинга сервера чашек. Я использую обертку для чашек pycups
. Приложение python находится на том же сервере, что и чашки. Вызовы для создания заданий на печать и получения информации о принтерах и состоянии заданий работают нормально, но когда я пытаюсь отклонить / отключить принтер или отменить задания, я получаю следующее сообщение об ошибке: cups.IPPError: (4096, 'Unauthorized')
У меня естьпробовал с несколькими конфигами в файле cupsd.conf
(и, конечно, перезапускал службу cups), но ни один из них не работал (даже пытался удалить все блоки политик).
Вот мой cupsd.conf
(удалил<Policy authenticated>
block)
LogLevel debug
ErrorPolicy retry-job
PageLogFormat
MaxLogSize 0
# Allow remote access
Port 631
Listen /var/run/cups/cups.sock
Browsing On
BrowseLocalProtocols none
DefaultAuthType Basic
WebInterface Yes
DefaultEncryption Never
<Location />
Require user @SYSTEM
Satisfy any
# Allow remote administration...
Order allow,deny
Allow 127.0.0.1
Allow localhost
</Location>
<Location /admin>
AuthType Default
Require user @SYSTEM
# Allow remote administration...
Order allow,deny
Allow all
</Location>
<Location /admin/conf>
AuthType Default
Require user @SYSTEM
# Allow remote access to the configuration files...
Order allow,deny
Allow all
</Location>
<Location /admin/log>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow all
# Allow remote access to the log files...
Order allow,deny
Allow all
</Location>
<Policy default>
JobPrivateAccess default
JobPrivateValues default
SubscriptionPrivateAccess default
SubscriptionPrivateValues default
<Limit Create-Job Print-Job Print-URI Validate-Job>
AuthType None
Satisfy any
Order allow,deny
Allow 127.0.0.1
</Limit>
<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 Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
Order allow,deny
Require user @SYSTEM
Satisfy any
AuthType None
Allow localhost
Allow 127.0.0.1
</Limit>
<Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
AuthType None
Order allow,deny
Require user @SYSTEM
Satisfy any
Allow 127.0.0.1
</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 Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
Order allow,deny
Satisfy any
Allow 127.0.0.1
Allow localhost
</Limit>
<Limit CUPS-Authenticate-Job>
Require user @OWNER @SYSTEM
Order allow,deny
Satisfy any
AuthType None
Allow 127.0.0.1
</Limit>
<Limit All>
Order allow,deny
</Limit>
</Policy>
Чашки error_log показывают это каждый раз, когда я пытаюсь отключить принтер или отменять задания:
D [29/Oct/2019:18:52:47 +0000] [Client 21] Accepted from localhost:55986 (IPv6)
D [29/Oct/2019:18:52:47 +0000] [Client 21] Waiting for request.
D [29/Oct/2019:18:52:47 +0000] [Client 21] POST /admin/ HTTP/1.1
D [29/Oct/2019:18:52:47 +0000] cupsdSetBusyState: newbusy="Active clients", busy="Not busy"
D [29/Oct/2019:18:52:47 +0000] [Client 21] Read: status=200
D [29/Oct/2019:18:52:47 +0000] [Client 21] No authentication data provided.
D [29/Oct/2019:18:52:47 +0000] cupsdIsAuthorized: username=""
D [29/Oct/2019:18:52:47 +0000] [Client 21] cupsdSendHeader: code=401, type="text/html", auth_type=0
D [29/Oct/2019:18:52:47 +0000] [Client 21] WWW-Authenticate: , trc=\"y\"
D [29/Oct/2019:18:52:47 +0000] [Client 21] Closing connection.
D [29/Oct/2019:18:52:47 +0000] cupsdSetBusyState: newbusy="Not busy", busy="Active clients"
Чашки access_log регистрируют это каждый раз, когда я пытаюсьотключить принтер или отменить задания: localhost - - [29/Oct/2019:17:15:16 +0000] "POST /admin/ HTTP/1.1" 401 0 - -