码农的世界cups打印Linux

[原]cups权限控制

2019-08-20  本文已影响0人  锦城牛仔

CUPS作为类Unix系统下通用打印系统,权限控制采用Unix本身的文件权限控制(用户、用户组,rwx),再加上CUPS自身实现的权限控制,来满足不同层面的权限控制需求。

1. Unix文件权限控制

由于CUPS中filter和backend都是作为命令行程序出现的,特别是backend具有写文件的能力,所以一般情况下backend都是0700权限,而filter是0755权限。防止被篡改,被非法执行。

2. 通过cupsd.conf配置Policy进行操作权限管理

https://www.cups.org/doc/policies.html

英文过关的可以参考上面网页的说明。

简单说明下,在cupsd.conf中,通过<Policy>标签来配置权限,可以指定Policy的名称,比如<Policy usb-printer-policy>,其中usb-printer-policy就是指定的名称。

每个Policy标签中,可以配置<Limit>标签来进行权限控制。

<Limit Create-Job Print-Job Print-URI Validate-Job>

  Require user @SYSTEM

  Order allow,deny

</Limit>

上面这个Limit标签表示,Create-Job(创建打印任务)、Print-Job、Print-URI和Validate-Job都需要@SYSTEM定义的用户组所属的用户才能执行。其中@SYSTEM是定义在cups-file.conf文件中的SystemGroup

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

SystemGroup lpadmin root

Limit标签中,如何限定用户,可以参考下图

将cupsd.conf中配置好的policy分配给指定打印机

lpadmin -p LaserJet4000 -o printer-op-policy=usb-printer-policy

-p LaserJet4000是打印机

-o printer-op-policy=usb-printer-policy中,usb-printer-policy是自建的policy

3. 本地或远程打开web interface

只能允许本地打开

Listen localhost:631

禁止使用web interface

WebInterface No

这样配置后,即使通过localhost:631本地访问,也无法查看和管理打印机,只能查看CUPS文档。

4. 通过cupsd.conf中配置<Location>标签来管理权限,用于类似于<Limit>标签中的配置

<Location /admin>

  Order allow,deny

  Allow all

</Location>

配置所有用户都可以进行CUPS管理操作。

5. 配置打印机是否可见

lpadmin -p LaserJet4000 -u allow:root,@lpadmin

-u allow:root,@lpadmin 表示允许root用户,@lpadmin用户组所属用户使用该打印机;其他用户将无法访问该打印机

上一篇 下一篇

猜你喜欢

热点阅读