cup-pdf를 사용하여 텍스트를 PDF로 인쇄할 수 없습니다.

cup-pdf를 사용하여 텍스트를 PDF로 인쇄할 수 없습니다.

Redhat 7 운영 체제에 cup-pdf 3.0 베타 2를 설치했습니다.

나는 (그들의 지시에 따라) 코드를 수동으로 컴파일했습니다.장소) cup-devel-1.6.3-17.el7_1.1을 설치한 후입니다. 나는 cup-devel-1.6.3-17.el7_1.1을 실행하고 있습니다. 이 작업을 방해하지 않도록 SELinux를 일시적으로 비활성화했습니다.

다음 명령을 사용하여 Cups-PDF라는 프린터를 만들었습니다.

/usr/sbin/lpadmin -p Cups-PDF -v cups-pdf:/ -m CUPS-PDF_opt.ppd -D "PDF Virtual printer" -E

여기서 CUPS-PDF_opt.ppd는 배포판의 파일입니다.파일.

다음과 같은 질문이 있습니다.

  1. 컵을 다시 시작한 후 프린터 정의가 사라졌습니다. 이유는 모르겠지만 컵을 다시 시작할 때마다 다시 만들어야 합니다. 하지만 이제는 Printers.conf에 있습니다. 어쩌면 과거에 SELinux가 활성화되었기 때문일 수도 있습니다.
  2. cup-pdf가 /etc/cups에 복사한 cup-pdf.conf 파일을 읽지 못하는 것 같습니다. 이는 cup-pdf.h 파일에 있는 구성 파일의 기본 위치입니다. 이러한 파일은 /var/spool/cups-pdf/${USER} 대신 /var/spool/cups에 생성됩니다.
  3. echo "Test" | lpr -P Cups-PDFPDF 파일 대신 텍스트 파일을 생성합니다. 내가 인쇄할 때http://localhost:631/printers/Cups-PDF?which_jobs=allFireFox에서 페이지를 열면 제대로 작동하고 /var/spool/cups 폴더에 파일이 생성되며 확장자를 pdf로 설정하면 거의 잘 열립니다. Windows에서 Acrobat Reader를 사용하여 열면 "DSXFCQ+ NimbusSansL" 글꼴에 잘못된 /BBox가 포함되어 있다는 오류가 표시됩니다.

내가 뭘 잘못했나요? 또한 파일에 대한 보안 권한도 확인했는데 문제가 없어 보입니다. 내가 시도한 모든 인쇄 명령은 루트를 사용하여 실행됩니다.

감사해요

업데이트 사항: 메시지를 확인했는데 여전히 다음과 같은 메시지가 표시됩니다.

Jan  8 18:17:58 computer setroubleshoot: failed to retrieve rpm info for /usr/lib/cups/backend/cups-pdf
Jan  8 18:17:58 computer setroubleshoot: SELinux is preventing /usr/lib/cups/backend/cups-pdf from remove_name access on the directory cups2pdf-3920. For complete SELinux messages. run sealert -l 497551b3-64a7-466e-8f91-1b8b3dff4884
Jan  8 18:17:58 computer python: SELinux is preventing /usr/lib/cups/backend/cups-pdf from remove_name access on the directory cups2pdf-3920.

*****  Plugin catchall (100. confidence) suggests   **************************

If you believe that cups-pdf should be allowed remove_name access on the cups2pdf-3920 directory by default.
Then you should report this as a bug.
You can generate a local policy module to allow this access.
Do
allow this access for now by executing:
# grep cups-pdf /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp

또 다른 업데이트: 마지막 로그 메시지의 조언을 따랐더니 제대로 작동하기 시작했습니다.

답변1

문제는 SELinux와 관련된 것 같습니다. 내 메시지의 두 번째 업데이트를 기반으로 Remove_name 액세스 권한을 부여한 후 작동이 시작되었습니다.

다른 사람이 필요할 경우를 대비해 cup-pdf용 SELinux를 구성하는 데 사용한 te 파일이 있습니다. 그것은 기반으로합니다하나제품 페이지 외부 링크:http://cups-pdf.de/documentation.shtml.

module cups_pdf 3.0beta2;

require {
    class dir { add_name create getattr remove_name search setattr write };
    class file { create getattr read setattr unlink write open};

    type cupsd_t;
    type home_root_t;
    type user_home_dir_t;
    type user_home_t;
    type print_spool_t;
    type unconfined_home_dir_t;
    type unconfined_home_t;
    type var_spool_t;
}

allow cupsd_t home_root_t:dir { getattr search };

allow cupsd_t user_home_dir_t:dir { getattr search };
allow cupsd_t user_home_t:dir { add_name create getattr remove_name search setattr write };
allow cupsd_t user_home_t:file { create getattr open read setattr unlink write };

allow cupsd_t unconfined_home_dir_t:dir { getattr search };
allow cupsd_t unconfined_home_t:dir { add_name create getattr remove_name search setattr write };
allow cupsd_t unconfined_home_t:file { create getattr open read setattr unlink write };

allow cupsd_t var_spool_t:dir { add_name create getattr remove_name search setattr write  };
allow cupsd_t var_spool_t:file { create getattr open read setattr unlink write };

관련 정보