我在使用 cups-pdf 中的后处理时遇到问题。正如我在日志文件中看到的那样,该脚本被调用,但没有任何反应。
/var/log/cups/cups-pdf-myPrinter_log:
Thu Jun 15 10:07:11 2017 [DEBUG] postprocessing commandline built: /etc/cups/postprocessing/ppmyPrinter.sh /srv/samba/cups-pdf/myPrinter/user/000012198600001.pdf [email protected] user
Thu Jun 15 10:07:11 2017 [DEBUG] postprocessing has finished: 32256
vim /etc/cups/cups-pdf-myPrinter.conf
PostProcessing /etc/cups/postprocessing/ppmyPrinter.sh
-rwxrwxrwx 1 root lp 194 Jun 15 09:35 ppmyPrinter.sh
vim /etc/cups/postprocessing/ppmyPrinter.sh
#!/bin/bash
echo "$1" >> /etc/cups/postprocessing/user
echo "$2" >> /etc/cups/postprocessing/user
echo "$3" >> /etc/cups/postprocessing/user
如果我运行脚本,./ppmyPrinter.sh test1 test2 test3
它会创建内容为 test1 test2 test3 的文件 user,但通过从 cups 调用什么也不会发生。我红色,在基于 debian 的系统(ubuntu)cups-pdf 上由 apparmor 监视,我必须允许执行该脚本,但在我的 CentOs 7 上没有 apparmor 运行。
您能否给我一个提示,在哪里寻找这个问题,是否有一些日志文件可以让我看到问题?
答案1
在 CentOS 上,如果这可能是一个问题,您必须处理 SELinux 而不是 AppArmor。通过 检查您的 SELinux 状态getenforce
。如果是Enabled
,请检查该/var/log/audit/audit.log
文件。
答案2
在 CentOS 中,还有另一种设置会导致相同的症状。默认情况下,后处理脚本以“nobody”用户身份运行,因此您必须在 /etc/sudoers 文件中添加一行,以允许脚本在不提示输入密码的情况下运行:
没有人 ALL=(ALL) NOPASSWD:/yourpath/yourscript.sh