【问题标题】:Cups cancle jobs gives forbidden error杯子取消作业给出了禁止的错误
【发布时间】:2018-09-18 13:45:30
【问题描述】:

我想取消网络打印机上的所有打印作业

cupsenable [printername]
cancel -a [printername]
cancel: purge-jobs failed: Forbidden

用户是“lp”组的成员

我还在清除作业和取消作业所在的 /etc/cups/cupsd.conf 文件的限制中添加了@OWNER

之后我关闭了会话并再次尝试,再次出现同样的错误。

之后我明确添加了我想取消作业的用户

关闭我打开的会话并再次尝试 -> 没有

也许我错过了什么?

这是我的 cupsd.conf:

Listen /var/run/cups/cups.sock
Browsing On
BrowseLocalProtocols dnssd
DefaultAuthType Basic
WebInterface Yes
<Location />
# Allow remote access...
Order allow,deny
Allow all
</Location>
<Location /admin>
</Location>
<Location /admin/conf>
AuthType Default
Require user @SYSTEM
</Location>
<Policy default>
JobPrivateAccess default
JobPrivateValues default
SubscriptionPrivateAccess default
SubscriptionPrivateValues default
<Limit Create-Job Print-Job Print-URI Validate-Job>
Order deny,allow
</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>
Require user @OWNER @SYSTEM sonex
Order deny,allow
</Limit>
<Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class        CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
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 Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
AuthType Default
Require user @SYSTEM sonex
Order deny,allow
</Limit>
<Limit Cancel-Job CUPS-Authenticate-Job>
Require user @OWNER @SYSTEM sonex
Order deny,allow
</Limit>
<Limit All>
Order deny,allow
</Limit>
</Policy>
<Policy authenticated>
JobPrivateAccess default
JobPrivateValues default
SubscriptionPrivateAccess default
SubscriptionPrivateValues default
<Limit Create-Job Print-Job Print-URI Validate-Job>
AuthType Default
Order deny,allow
</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>
AuthType Default
Require user @OWNER @SYSTEM sonex
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 Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
AuthType Default
Require user @SYSTEM sonex
Order deny,allow
</Limit>
<Limit Cancel-Job CUPS-Authenticate-Job>
AuthType Default
Require user @OWNER @SYSTEM sonex
Order deny,allow
</Limit>
<Limit All>
Order deny,allow
</Limit>
</Policy>

也许我错过了某种前提?

我不能让用户成为超级用户,因为客户正在使用这个帐户,他不应该是服务器上的超级用户。

【问题讨论】:

    标签: linux printing configuration cups usergroups


    【解决方案1】:

    通过将用户用cancel命令添加到sudoers文件中解决

    sonex    ALL=(ALL)     NOPASSWD: /etc/bin/cancel -a *
    

    似乎没有办法通过配置文件来解决它,只为单个打印作业清除整个打印作业

    【讨论】:

      【解决方案2】:

      我是通过谷歌搜索到这里的:

      取消:取消作业失败:禁止

      我的解决方法是授予lp 组运行cups 命令的权限,然后将用户添加到lp 组。

      首先,将lp添加到/etc/cups-files.conf中的SystemGroup...

      # Administrator user group, used to match @SYSTEM in cupsd.conf policy rules...
      SystemGroup sys root lp
      

      重启杯子...

      systemctl restart cups

      将用户添加到lp 组。

      usermod -a -G lp user1

      user1 现在可以运行

      cancel PRINTER-12345

      并使用 cups 网站上的 [Cancel Job] 按钮(将提示登录)。

      From the cupsd.conf man page

      需要用户 {user-name|@group-name} ...

      指定经过身份验证的用户必须与指定用户之一匹配 或成为指定组之一的成员。组名“@SYSTEM” 对应于 SystemGroup 指令定义的组列表 在 cups-files.conf(5) 文件中。

      tldr;

      /etc/cupsd.conf 授予@SYSTEM 权限。

      /etc/cups-files.confSystemGroup 定义了@SYSTEM。

      【讨论】:

        猜你喜欢
        • 2017-05-12
        • 1970-01-01
        • 2021-12-16
        • 2013-08-29
        • 2019-08-08
        • 1970-01-01
        • 2017-02-27
        • 2017-08-31
        • 2021-09-04
        相关资源
        最近更新 更多