Тема : ubuntu + 1Cv8 + winXP-7-8+Печать


Топор  01-12-2015 10:37
Переходим с win-2003/2008 на ubuntu-64+X11RDP. На серверах в терминальном режиме крутится 1cv83.

Проблемы с печатью на расшареные принтеры клиентов. Принтеров и операционок много, драйверов под ubuntu на всех не хватает.

Возникла идея печатать cups-PDF, в расшареную по smb папку. Написать службу под винду, которая будет мониторить эту папку и в зависимости от пользователя печатать *.pdf на принтер, указанный для данного пользователя и чистить папку.

Решения:
1. Для вновь открывающихся фирм проблема печати решается покупкой принтеров/МФУ HP с сетевым интерфейсом. По-крайней мере 2055, 1212, и M125 печатают из под ubuntu без проблем.

2. Отключение apparmor для модуля cups (решение крайне спорное, но как не отключать защиту а правильно настроить я не знаю.)
# устанавливаем набор программ для работы с apparmor
sudo apt-get install apparmor-utils

# отключение защиты для модуля usr.sbin.cupsd
sudo aa-complain /etc/apparmor.d/usr.sbin.cupsd

для повторного включения защины используйте команду sudo aa-enforce /etc/apparmor.d/usr.sbin.cupsd

Топор  01-12-2015 10:39
При реализации возникли проблемы:
По умолчанию cups-pdf печатает в ~/PDF. Расшаривать по сети папку /Home считаю неправильным.

При попытке изменения параметра out в cups-pdf.conf на /pdf файл pdf в папке /pdf не появляется. в файле лога cups-pdf
Mon Nov 30 23:08:15 2015 [DEBUG] output filename created (/pdf/job_18-Mousepad_job__6.pdf)
Mon Nov 30 23:08:15 2015 [DEBUG] ghostscript commandline built (/usr/bin/gs -q-dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile="/pdf/job_18-Mousepad_job__6.pdf" -dAutoRotatePages=/PageByPage -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dPDFSETTINGS=/prepress -c .setp
dfwrite -f /var/spool/cups-pdf/SPOOL/cups2pdf-4463)
Nov 30 23:08:15 2015 [DEBUG] output file unlinked (/pdf/job_18-Mousepad_job
__6.pdf)
Mon Nov 30 23:08:15 2015 [DEBUG] TMPDIR set for GhostScript (/var/tmp)
Mon Nov 30 23:08:15 2015 [DEBUG] waiting for child to exit
Mon Nov 30 23:08:15 2015 [DEBUG] entering child process
Mon Nov 30 23:08:15 2015 [DEBUG] GID set for current user
Mon Nov 30 23:08:15 2015 [DEBUG] supplementary groups set for current user
Mon Nov 30 23:08:15 2015 [DEBUG] UID set for current user (UserOne)
Mon Nov 30 23:08:15 2015 [DEBUG] ghostscript has finished (256)
Mon Nov 30 23:08:15 2015 [ERROR] failed to set file mode for PDF file (non fata
l) (/pdf/job_18-Mousepad_job__6.pdf)
Mon Nov 30 23:08:15 2015 [DEBUG] ERRNO: 2
Mon Nov 30 23:08:15 2015 [DEBUG] no postprocessing
Mon Nov 30 23:08:15 2015 [DEBUG] spoolfile unlinked (/var/spool/cups-df/SPOOL/cups2pdf-4463)
Пробовал менять права и владельца /pdf но что-то ничего не выходит. Даже не знаю, куда дальше копать

Atheist  01-12-2015 18:24
А в системном логе ничего нет?
grep cups /var/log/messages

grep cups /var/log/syslog

Еще здесь посмотрите http://ubuntuforums.org/showthread.php?t=1654320

Топор  01-12-2015 21:51
messages отсутствует.

grep cups-pdf /var/log/syslog

Nov 27 20:50:03 ubuh0 kernel: [ 9.058514] audit: type=1400 audit(1448646603.830:8): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=828 comm="apparmor_parser"
Nov 27 21:07:53 ubuh0 kernel: [ 1079.922604] audit: type=1400 audit(1448647673.325:29): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=9207 comm="apparmor_parser"
Nov 27 23:45:21 ubuh0 kernel: [ 24.343444] audit: type=1400 audit(1448657121.091:17): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=1433 comm="apparmor_parser"
Nov 27 23:45:38 ubuh0 kernel: [ 42.113591] audit: type=1400 audit(1448657138.843:30): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=1735 comm="apparmor_parser"
Nov 28 09:41:21 ubuh0 kernel: [ 40.704910] audit: type=1400 audit(1448692881.309:30): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=1718 comm="apparmor_parser"
Nov 28 13:10:49 ubuh0 kernel: [12619.501452] audit: type=1400 audit(1448705449.857:33): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=25873 comm="apparmor_parser"
Nov 28 13:12:58 ubuh0 kernel: [12748.715676] audit: type=1400 audit(1448705578.965:36): apparmor="DENIED" operation="mkdir" profile="/usr/lib/cups/backend/cups-pdf" name="/srv/samba/pdf/UserOne/" pid=25924 comm="cups-pdf" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Nov 28 13:14:42 ubuh0 kernel: [12852.592588] audit: type=1400 audit(1448705682.757:41): apparmor="DENIED" operation="mkdir" profile="/usr/lib/cups/backend/cups-pdf" name="/srv/samba/pdf/UserOne/" pid=25953 comm="cups-pdf" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Nov 28 13:17:08 ubuh0 kernel: [12998.921551] audit: type=1400 audit(1448705828.969:46): apparmor="DENIED" operation="mkdir" profile="/usr/lib/cups/backend/cups-pdf" name="/srv/samba/pdf/UserOne/" pid=25974 comm="cups-pdf" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Nov 28 13:18:11 ubuh0 kernel: [13061.545314] audit: type=1400 audit(1448705891.541:51): apparmor="DENIED" operation="mknod" profile="/usr/lib/cups/backend/cups-pdf" name="/srv/samba/pdf/UserOne/Untitled.pdf" pid=25985 comm="gs" requested_mask="c" denied_mask="c" fsuid=1000 ouid=1000
Nov 28 13:20:18 ubuh0 kernel: [13188.524634] audit: type=1400 audit(1448706018.417:56): apparmor="DENIED" operation="mknod" profile="/usr/lib/cups/backend/cups-pdf" name="/srv/samba/pdf/UserOne/Untitled.pdf" pid=26047 comm="gs" requested_mask="c" denied_mask="c" fsuid=1000 ouid=1000
Nov 28 13:24:45 ubuh0 kernel: [13456.295657] audit: type=1400 audit(1448706285.969:61): apparmor="DENIED" operation="mknod" profile="/usr/lib/cups/backend/cups-pdf" name="/srv/samba/pdf/UserOne/Untitled.pdf" pid=26089 comm="gs" requested_mask="c" denied_mask="c" fsuid=1000 ouid=1000
Nov 28 13:26:52 ubuh0 kernel: [13582.752671] audit: type=1400 audit(1448706412.321:66): apparmor="DENIED" operation="mknod" profile="/usr/lib/cups/backend/cups-pdf" name="/srv/samba/pdf/UserOne/Untitled.pdf" pid=26111 comm="gs" requested_mask="c" denied_mask="c" fsuid=1000 ouid=1000
Nov 28 13:28:23 ubuh0 kernel: [13674.412210] audit: type=1400 audit(1448706503.909:67): apparmor="DENIED" operation="mknod" profile="/usr/lib/cups/backend/cups-pdf" name="/srv/samba/pdf/UserOne/Untitled.pdf" pid=26147 comm="gs" requested_mask="c" denied_mask="c" fsuid=1000 ouid=1000
Nov 28 13:35:10 ubuh0 kernel: [14081.034029] audit: type=1400 audit(1448706910.197:68): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=26199 comm="apparmor_parser"
Nov 28 13:35:53 ubuh0 kernel: [14124.729324] audit: type=1400 audit(1448706953.857:71): apparmor="DENIED" operation="mkdir" profile="/usr/lib/cups/backend/cups-pdf" name="/pdf/UserOne/" pid=26222 comm="cups-pdf" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Nov 28 13:37:42 ubuh0 kernel: [14233.790703] audit: type=1400 audit(1448707062.829:72): apparmor="DENIED" operation="mkdir" profile="/usr/lib/cups/backend/cups-pdf" name="/pdf/UserOne/" pid=26239 comm="cups-pdf" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Nov 28 13:39:11 ubuh0 kernel: [14322.389173] audit: type=1400 audit(1448707151.357:73): apparmor="DENIED" operation="mkdir" profile="/usr/lib/cups/backend/cups-pdf" name="/pdf/UserOne/" pid=26401 comm="cups-pdf" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Nov 28 13:42:24 ubuh0 kernel: [14515.969599] audit: type=1400 audit(1448707344.781:74): apparmor="DENIED" operation="mkdir" profile="/usr/lib/cups/backend/cups-pdf" name="/pdf/UserOne/" pid=26544 comm="cups-pdf" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Nov 28 13:45:19 ubuh0 kernel: [14690.452890] audit: type=1400 audit(1448707519.121:75): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=26581 comm="apparmor_parser"
Nov 28 13:47:09 ubuh0 kernel: [14800.519404] audit: type=1400 audit(1448707629.097:78): apparmor="DENIED" operation="mkdir" profile="/usr/lib/cups/backend/cups-pdf" name="/pdf/ANONYMOUS/" pid=26605 comm="cups-pdf" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Nov 28 13:51:36 ubuh0 kernel: [15068.513200] audit: type=1400 audit(1448707896.873:79): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=26784 comm="apparmor_parser"
Nov 28 13:51:47 ubuh0 kernel: [15079.047681] audit: type=1400 audit(1448707907.397:82): apparmor="DENIED" operation="mkdir" profile="/usr/lib/cups/backend/cups-pdf" name="/pdf/NOBODY/" pid=26802 comm="cups-pdf" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Nov 28 14:07:55 ubuh0 kernel: [16048.421203] audit: type=1400 audit(1448708875.981:83): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=26931 comm="apparmor_parser"
Nov 28 14:08:12 ubuh0 kernel: [16065.040706] audit: type=1400 audit(1448708892.589:86): apparmor="DENIED" operation="mkdir" profile="/usr/lib/cups/backend/cups-pdf" name="/pdf/NOBODY/" pid=26949 comm="cups-pdf" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Nov 28 14:12:26 ubuh0 kernel: [16318.816346] audit: type=1400 audit(1448709146.157:87): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=26992 comm="apparmor_parser"
Nov 28 14:18:34 ubuh0 kernel: [16687.618615] audit: type=1400 audit(1448709514.657:90): apparmor="DENIED" operation="mkdir" profile="/usr/lib/cups/backend/cups-pdf" name="/pdf/UserOne/" pid=27092 comm="cups-pdf" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Nov 28 14:38:15 ubuh0 kernel: [17869.706112] audit: type=1400 audit(1448710695.781:91): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=27164 comm="apparmor_parser"
Nov 28 23:15:56 ubuh0 kernel: [ 10.657052] audit: type=1400 audit(1448741756.513:2): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=812 comm="apparmor_parser"
Nov 28 23:48:04 ubuh0 kernel: [ 41.132668] audit: type=1400 audit(1448743684.506:30): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=2097 comm="apparmor_parser"
Nov 29 19:20:25 ubuh0 kernel: [ 41.146603] audit: type=1400 audit(1448814025.201:30): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=1848 comm="apparmor_parser"
Nov 29 20:35:13 ubuh0 kernel: [ 41.264097] audit: type=1400 audit(1448818513.029:30): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=1848 comm="apparmor_parser"
Nov 30 09:24:52 ubuh0 kernel: [ 40.773180] audit: type=1400 audit(1448864692.911:30): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=1854 comm="apparmor_parser"
Nov 30 22:27:59 ubuh0 kernel: [47082.221016] audit: type=1400 audit(1448911679.712:33): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=3784 comm="apparmor_parser"
Nov 30 22:37:44 ubuh0 kernel: [47667.898704] audit: type=1400 audit(1448912264.700:36): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=4244 comm="apparmor_parser"
Nov 30 22:37:54 ubuh0 kernel: [47677.831061] audit: type=1400 audit(1448912274.620:39): apparmor="DENIED" operation="mknod" profile="/usr/lib/cups/backend/cups-pdf" name="/pdf/job_14-Mousepad_job__2.pdf" pid=4266 comm="gs" requested_mask="c" denied_mask="c" fsuid=1000 ouid=1000
Nov 30 22:56:23 ubuh0 kernel: [48788.093689] audit: type=1400 audit(1448913383.584:40): apparmor="DENIED" operation="mknod" profile="/usr/lib/cups/backend/cups-pdf" name="/pdf/job_15-Mousepad_job__3.pdf" pid=4332 comm="gs" requested_mask="c" denied_mask="c" fsuid=1000 ouid=1000
Nov 30 23:03:58 ubuh0 kernel: [49243.125623] audit: type=1400 audit(1448913838.080:41): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=4409 comm="apparmor_parser"
Nov 30 23:04:12 ubuh0 kernel: [49257.619874] audit: type=1400 audit(1448913852.556:44): apparmor="DENIED" operation="mknod" profile="/usr/lib/cups/backend/cups-pdf" name="/pdf/job_16-Mousepad_job__4.pdf" pid=4431 comm="gs" requested_mask="c" denied_mask="c" fsuid=1000 ouid=1000
Nov 30 23:05:44 ubuh0 kernel: [49349.779448] audit: type=1400 audit(1448913944.608:45): apparmor="DENIED" operation="mknod" profile="/usr/lib/cups/backend/cups-pdf" name="/pdf/job_17-Mousepad_job__5.pdf" pid=4447 comm="gs" requested_mask="c" denied_mask="c" fsuid=1000 ouid=1000
Nov 30 23:08:15 ubuh0 kernel: [49500.995268] audit: type=1400 audit(1448914095.648:46): apparmor="DENIED" operation="mknod" profile="/usr/lib/cups/backend/cups-pdf" name="/pdf/job_18-Mousepad_job__6.pdf" pid=4468 comm="gs" requested_mask="c" denied_mask="c" fsuid=1000 ouid=1000
Nov 30 23:17:15 ubuh0 kernel: [50041.128227] audit: type=1400 audit(1448914635.148:47): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=4514 comm="apparmor_parser"
Nov 30 23:28:24 ubuh0 kernel: [50711.649582] audit: type=1400 audit(1448915304.880:50): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=4631 comm="apparmor_parser"
Nov 30 23:28:43 ubuh0 kernel: [50729.800274] audit: type=1400 audit(1448915323.012:53): apparmor="DENIED" operation="mkdir" profile="/usr/lib/cups/backend/cups-pdf" name="/home/PDF/" pid=4649 comm="cups-pdf" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
Nov 30 23:31:56 ubuh0 kernel: [50923.090108] audit: type=1400 audit(1448915516.076:54): apparmor="DENIED" operation="mknod" profile="/usr/lib/cups/backend/cups-pdf" name="/home/PDF/job_21-Mousepad_job__9.pdf" pid=4678 comm="gs" requested_mask="c" denied_mask="c" fsuid=1000 ouid=1000
Dec 1 11:53:38 ubuh0 kernel: [ 41.320025] audit: type=1400 audit(1448960018.654:30): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=2086 comm="apparmor_parser"

Топор  01-12-2015 21:57
В том то все и дело. У меня в дефолтный каталог все печатает.
А у другой - никак

Пробовал задавать права на каталог Out 2777
менял владельцев и на себя и на lp и на lpadmin - пофигу, нет файла.

Atheist  01-12-2015 23:39
По всей видимости дело не в разрешениях на папку, а в AppArmor.


AppArmor - это реализация Модуля безопасности линукс по управлению доступом на основе имен. AppArmor ограничивает отдельные программы набором перечисленных файлов и возможностями в соответствии с правилами Posix 1003.1e.

Попробуйте перевести фильтр для cups в режим обучения:
sudo aa-complain cupsd
Для включения режима ограничений обратно
sudo aa-complain cupsd

Более подробно подсказать не могу.

Топор  02-12-2015 00:21
По всей видимости дело не в разрешениях на папку, а в AppArmor. Попробуйте перевести фильтр для cups в режим обучения:

Спасибо, завтра попробую.

Описание работы apparmor читаю здесь:
http://help.ubuntu.ru/wiki/%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D0%BE_ubuntu_server/%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C/apparmor

Топор  02-12-2015 10:11
Для начала нужно установить пакет apparmor-utils
sudo apt-get install apparmor-utils
Затем я полез в папку /etc/apparmor.d и посмотрел названия сохраненных профилей. Мой назывался usr.sbin.cupsd.
после ввода команды
sudo aa-complain /etc/apparmor.d/usr.sbin.cupsd
все начинает печатать в нужную мне папку, а после sudo aa-enforce /etc/apparmor.d/usr.sbin.cupsd опять перестает. Так что дело точно в модуле apparmor. Буду копать дальше.

Landre  03-12-2015 20:38
Топор: В Дебиан логика очень простая - все запрещено. Для того, что бы что-то заработало (начало работать) - это нужно разрешить, т.е. вносим необходимые изменения для пользователей и их принадлежность к различным группам. Ибо службы запускаются от рута.

Так же надо переопределить уровень досутпа к каталогу (директории).

Топор  07-12-2015 22:31
Ну, заработало хоть-как-то и ладно. Сейчас запрягли другой задачей, так что вернусь к этой на Новогодние праздники. Решение описал в первом сообщении.

НО! Техническая возможность есть. Демонстратор в "Ручном виде" работает. Для печати из-под винды я использовал Foxit Reader 4. Печатал PDF командой:start c:\Progra~1\Foxits~1\Foxitr~1\Foxitr~1.exe -t \\192.168.1.2\pdf\UserOne\job_37-Untitled.pdf "HP LaserJet P2050 Series PCL6"

Все печатает, нужно только службу мониторинга каталогов написать.

Огромное спасибо Atheist за помощь. К сожалению не могу плюсонуть. Если кому-то из старших товарищей эта тема интересна, поставьте товарищу Atheist "пятерочку" от меня.