Linux

CUPS - 網路列印機 - 連接錯誤:權限被拒絕,列印機沒有響應

  • December 24, 2020

我正在嘗試解決列印問題,但首先我需要描述我的環境(這有點不標準)。

我有一台 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 正在否認它?如果它是基於文件的套接字,有什麼想法,它的名稱是什麼以及它在文件系統中的位置?

有什麼建議麼?

我設法找到解決我的問題的方法。我設法繞過了 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 列印作品!

引用自:https://serverfault.com/questions/1043848