web-dev-qa-db-ja.com

PDF using cups-pdfに印刷できません。以前は機能していましたが、「ファイルモードの設定に失敗しました」という非rootとしての印刷

これは本当に奇妙なことです。以前はDebianで正常に動作し、その後dist-upgradeなしでも壊れてしまったものです。

以前はCUPS PDF仮想プリンターを使用して何かをPDFファイルに印刷することができました。今では機能しません。何も表示されません。 〜/ PDFを通常のユーザーとして印刷する場合。CUPS管理インターフェイスにログインし、それを使用してテストページをプリンターに印刷すると、機能します; PDFはうまく表示されます〜root/PDF内ただし、PDF非rootユーザーとして印刷できるようにしたい...

/ var/log/cups/cups-pdf_logには次のように書かれています:

_Fri Feb  7 18:31:57 2014  [STATUS] ***Experimental Option: DecodeHexStrings
Fri Feb  7 18:31:57 2014  [ERROR] failed to set file mode for PDF file (non fatal) (/michael/home/PDF/PDF_-_CUPS_1_5.pdf)
Fri Feb  7 18:31:57 2014  [STATUS] PDF creation successfully finished (michael)
_

はい、_failed to set file mode for PDF file_です。ただし、そのためのグーグルはあまり役に立ちません。 /etc/cups/cups-pdf.confのOutディレクトリの変更を提案するWebページを1つ見つけたので、(_Out /tmp/${USER}.cups-pdf_)を実行してCUPSを再起動し、印刷しようとするとPDFそのようなディレクトリを作成したため、その変更を取得しますが、新しい場所での同じエラーについて不平を言いました。

どうやら最新バージョン(CUPS 1.5.3-5 + deb7u1、CUPS-PDF 2.6.1-6、Debian Wheezy)であるにもかかわらず、何らかの理由で壊れた場合に備えて、CUPSを再インストールすることにしました。

_Sudo apt-get --reinstall -u install cups cups-pdf cups-bsd cups-client cups-common cups-driver-gutenprint cups-filters cups-pk-helper cups-ppdc
_

しかし、まだ同じエラーが発生します。

/etc/cups/cups-pdf.confで_LogType 7_を設定すると、次のようになります。

_Fri Feb  7 19:01:29 2014  [DEBUG] switching to new gid (lpadmin)
Fri Feb  7 19:01:29 2014  [DEBUG] initialization finished (v2.6.1)
Fri Feb  7 19:01:29 2014  [DEBUG] user identified (michael)
Fri Feb  7 19:01:29 2014  [DEBUG] output directory name generated (/tmp/michael.cups-pdf)
Fri Feb  7 19:01:29 2014  [DEBUG] user information prepared
Fri Feb  7 19:01:29 2014  [DEBUG] spoolfile name created (/var/spool/cups-pdf/SPOOL/cups2pdf-18015)
Fri Feb  7 19:01:29 2014  [DEBUG] source stream ready
Fri Feb  7 19:01:29 2014  [DEBUG] destination stream ready (/var/spool/cups-pdf/SPOOL/cups2pdf-18015)
Fri Feb  7 19:01:29 2014  [DEBUG] owner set for spoolfile (/var/spool/cups-pdf/SPOOL/cups2pdf-18015)
Fri Feb  7 19:01:29 2014  [DEBUG] using traditional fgets
Fri Feb  7 19:01:30 2014  [DEBUG] found beginning of postscript code (%!PS-Adobe-3.0)
Fri Feb  7 19:01:30 2014  [DEBUG] now extracting postscript code
Fri Feb  7 19:01:30 2014  [DEBUG] found title in ps code ((What does the CUPS PDF printer need to be able to set file mode? - Unix & Linux Stack Exchange))
Fri Feb  7 19:01:30 2014  [DEBUG] found end of postscript code (%%EOF)
Fri Feb  7 19:01:30 2014  [DEBUG] all data written to spoolfile (/var/spool/cups-pdf/SPOOL/cups2pdf-18015)
Fri Feb  7 19:01:30 2014  [DEBUG] trying to use PS title ((What does the CUPS PDF printer need to be able to set file mode? - Unix & Linux Stack Exchange))
Fri Feb  7 19:01:30 2014  [DEBUG] removing trailing newlines from title ((What does the CUPS PDF printer need to be able to set file mode? - Unix & Linux Stack Exchange))
Fri Feb  7 19:01:30 2014  [STATUS] ***Experimental Option: DecodeHexStrings
Fri Feb  7 19:01:30 2014  [DEBUG] checking for hex strings ((What does the CUPS PDF printer need to be able to set file mode? - Unix & Linux Stack Exchange))
Fri Feb  7 19:01:30 2014  [DEBUG] not a hex string, has no start marker ((What does the CUPS PDF printer need to be able to set file mode? - Unix & Linux Stack Exchange))
Fri Feb  7 19:01:30 2014  [DEBUG] removing enclosing parentheses () from full title ((What does the CUPS PDF printer need to be able to set file mode? - Unix & Linux Stack Exchange))
Fri Feb  7 19:01:30 2014  [DEBUG] calling alternate_replace_string
Fri Feb  7 19:01:30 2014  [DEBUG] removing alternate special characters from title (What does the CUPS PDF printer need to be able to set file mode? - Unix & Linux Stack Exchange)
Fri Feb  7 19:01:30 2014  [DEBUG] truncating title (What_does_the_CUPS_PDF_printer_need_to_be_able_to_set_file_mode_)
Fri Feb  7 19:01:30 2014  [DEBUG] title successfully retrieved (What_does_the_CUPS_PDF_printer_need_to_be_able_to_set_file_mode_)
Fri Feb  7 19:01:30 2014  [DEBUG] input data read from stdin
Fri Feb  7 19:01:30 2014  [DEBUG] output filename created (/tmp/michael.cups-pdf/What_does_the_CUPS_PDF_printer_need_to_be_able_to_set_file_mode_.pdf)
Fri Feb  7 19:01:30 2014  [DEBUG] ghostscript commandline built (/usr/bin/gs -q -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile="/tmp/michael.cups-pdf/What_does_the_CUPS_PDF_printer_need_to_be_able_to_set_file_mode_.pdf" -dAutoRotatePages=/PageByPage -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dPDFSETTINGS=/prepress -c .setpdfwrite -f /var/spool/cups-pdf/SPOOL/cups2pdf-18015)
Fri Feb  7 19:01:30 2014  [DEBUG] output file unlinked (/tmp/michael.cups-pdf/What_does_the_CUPS_PDF_printer_need_to_be_able_to_set_file_mode_.pdf)
Fri Feb  7 19:01:30 2014  [DEBUG] TMPDIR set for GhostScript (/var/tmp)
Fri Feb  7 19:01:30 2014  [DEBUG] waiting for child to exit
Fri Feb  7 19:01:30 2014  [DEBUG] entering child process
Fri Feb  7 19:01:30 2014  [DEBUG] GID set for current user
Fri Feb  7 19:01:30 2014  [DEBUG] supplementary groups set for current user
Fri Feb  7 19:01:30 2014  [DEBUG] UID set for current user (michael)
Fri Feb  7 19:01:30 2014  [DEBUG] ghostscript has finished (256)
Fri Feb  7 19:01:30 2014  [ERROR] failed to set file mode for PDF file (non fatal) (/tmp/michael.cups-pdf/What_does_the_CUPS_PDF_printer_need_to_be_able_to_set_file_mode_.pdf)
Fri Feb  7 19:01:30 2014  [DEBUG] ERRNO: 2
Fri Feb  7 19:01:30 2014  [DEBUG] no postprocessing
Fri Feb  7 19:01:30 2014  [DEBUG] spoolfile unlinked (/var/spool/cups-pdf/SPOOL/cups2pdf-18015)
Fri Feb  7 19:01:30 2014  [DEBUG] all memory has been freed
Fri Feb  7 19:01:30 2014  [STATUS] PDF creation successfully finished (michael)
_

Ghostscriptがステータス256([DEBUG] ghostscript has finished (256))で終了しているように見えますが、そのエラーコードで終了する理由を正確に示すものは見つかりません。

私のユーザーアカウントはlpまたはlpadminグループのメンバーではありませんが、変更されていません。

机の上の物理的なプリンターへの印刷は問題なく動作します。私は最近、PDFへの印刷後、このように動作し始めました。

私の問題は何でしょうか?

5
a CVn

この投稿でわかるように、 https://bugs.launchpad.net/ubuntu/+source/cups/+bug/270046/comments/28

最も簡単な方法で解決(Cups apparmorプロファイルを無効にする)

これらのコマンドを実行します...

Sudo mv /etc/apparmor.d/usr.sbin.cupsd /etc/apparmor.d/disable
Sudo /etc/init.d/apparmor restart
1
Vicente Serra

次の投稿を参照した: https://ubuntuforums.org/showthread.php?t=1975881

多くの調査の後、最終的に私は自分の問題がフォルダーのアクセス許可であることがわかりました/var/tmp/、それは755(drwxr-xr-x、root、root)でした。

777(drwxrwxrwx)に変更した後、cups-pdfは再び動作します。

/etc/cups/cups-pdf.conf、それはどちらかを示しています/var/tmpまたは/tmpはユーザーが書き込み可能でなければなりません!

1
ycheng

ユーザーのホームディレクトリは/ local/homeにあるため、行を変更する必要がありました。

@{HOMEDIRS}=/home/ /local/home/

/etc/apparmor.d/tunables/home。次にapparmorを再起動します

Sudo service apparmor restart
1
Chelmite

同じ問題があり、/etc/apparmor.d/usr.sbin.cupsdの2行(156行目あたり)を/PDF/ rwに変更し、/PDF/* rwを目的の出力ディレクトリに変更して、apparmorとcupsを再起動することで修正しました。

0
usegnu

ログを見ると、/tmpのファイルに対する権限の設定に問題があるようです。

2014年2月7日金19:01:30 [エラー] PDFファイル(非致命的)のファイルモードの設定に失敗しました)(/tmp/michael.cups-pdf/What_does_the_CUPS_PDF_printer_need_to_be_able_to_set_file_mode_.pdf)

あなたがそれを実行できることを確認します。おそらく、親ディレクトリ/tmpの権限が変更されました。

0
slm

これは5年遅れですが、問題はディレクトリの所有権にあると考えていますmichael.cups-pdf。ディレクトリでchownを使用して、出力ファイルの所有権を照合します(例:匿名の場合はnobody)。

0
Yamcha_Kippur