CUPS - 网络打印机 - 连接错误:权限被拒绝,打印机无响应

CUPS - 网络打印机 - 连接错误:权限被拒绝,打印机无响应

我正在尝试解决打印问题,但首先我需要描述我的环境(有点非标准)。

我有一台 HP 1102 USB 打印机,连接到运行 CUPS 的 Ubuntu 20.04 系统并将打印机共享给 LAN 中的其他系统。通过 IPP 从其他系统(Ubuntu 18.04、Ubuntu 20.04、Windows 10)打印正常。

我有一个运行 Android 10 的客户端,它在同一 LAN 中的 chroot 中运行 Linux Deploy 和 Linux 18.04。Linux 系统有 XFCE 和 CUPS,我以与其他系统相同的方式配置了打印机。

当我尝试打印时(将本地杯子设置为调试),这是我的工作所获得的结果:

D [25/Nov/2020:10:12:01 +0200] [Job 8] Connecting to 192.168.1.13:631
D [25/Nov/2020:10:12:01 +0200] [Job 8] Connecting to printer.
D [25/Nov/2020:10:12:01 +0200] [Job 8] Connection error: Permission denied
E [25/Nov/2020:10:12:01 +0200] [Job 8] The printer is not responding.
D [25/Nov/2020:10:12:31 +0200] [Job 8] Connecting to 192.168.1.13:631
D [25/Nov/2020:10:12:31 +0200] [Job 8] Connecting to printer.
D [25/Nov/2020:10:12:31 +0200] [Job 8] Connection error: Permission denied
E [25/Nov/2020:10:12:31 +0200] [Job 8] The printer is not responding.

我在 cups 服务器端进行数据包捕获,当它说尝试连接打印机时没有数据包。手动连接(telnet 192.168.1.13 631打开套接字并且 TCP 通信有效)。

在 Android Linux chroot 上运行的 CUPS 内部肯定出了问题,但我搞不清楚是什么问题。本地打印作业看起来没问题,/var/spool/cups 目录的文件权限看起来没问题,cups 以 root 身份运行。

我不确定在哪里可以进一步查找问题原因...

我正在观察 android logcat 试图看看是否存在问题,它是这样的:

11-25 10:28:29.179  2980  3091 W Netd    : No subsystem found in netlink event
11-25 10:28:31.012 20789 20789 I printers.cgi: type=1400 audit(0.0:785): avc: denied { ioctl } for path="socket:[151451]" dev="sockfs" ino=151451 ioctlcmd=0x8933 scontext=u:r:magisk:s0 tcontext=u:r:magisk:s0 tclass=unix_dgram_socket permissive=1

所以 - 我认为 cups 正在尝试创建一个套接字,而 android 拒绝了它?如果它是基于文件的套接字,您知道它的名字是什么以及它在文件系统中的位置吗?

有什么建议么?

答案1

我设法找到了解决问题的方法。我设法绕过 Linux 上的 CUPS(在 Android 上运行),并让系统连接到远程 cups 服务器(在我的 LAN 上托管打印机)。我必须添加一个/etc/cups/client.conf包含以下内容的文件:

AllowAnyRoot Yes
AllowExpiredCerts Yes
Encryption IfRequested
ServerName 192.168.1.13:631

192.168.1.13 正在运行我实际的 CUPS 服务器。现在可以从 Android 下的 Linux chroot 进行打印了!

相关内容