После обновления до 5.1 сломалась печать через cups. [2010/01/23 18:26:37, 0] printing/print_cups.c:cups_connect(69) Unable to connect to CUPS server /var/run/cups/cups.sock:631 - Permission denied Странный URL /var/run/cups/cups.sock:631 в логах напоминает такой из http://bugs.kde.org/show_bug.cgi?id=115891 rpm -q samba cups samba-3.0.37-alt1 cups-1.4.2-alt1.M51.1 uname -a Linux breeze.localdomain 2.6.30-std-def-alt15 #1 SMP Mon Dec 14 08:46:35 UTC 2009 x86_64 GNU/Linux
Станислав, не встречались с такой бякой Unable to connect to CUPS server /var/run/cups/cups.sock:631 - Permission denied ?
в cups.conf Listen localhost:631 Listen /var/run/cups/cups.sock Если последнюю строчку закоментировать, то печатать будет (hackaround есть) но это есть в cups.conf.default Listen localhost:631 Listen /var/run/cups/cups.sock и по идее в свежеустановленной системе. Т.е. похоже, сборка samba некорректно работает с libcups.so может, ее просто пересобрать? или это samba слишком старая для cups 1.4.2 ?
Пересборка не особенно поможет, права доступа к сокету все же хотелось бы увидеть, скорее всего изменились они. Реальная попытка соединения выполняется в CUPS, в httpAddrConnect -- смотрите http://svn.easysw.com/public/cups/trunk/cups/http-addrlist.c httpAddrConnect() перебирает все возможные адреса для соединения, которые прождаются посредством httpAddrGetList() оттуда же (вызывается из httpConnectEncrypt() c AF_UNSPEC).
(В ответ на комментарий №3) > Пересборка не особенно поможет, права доступа к сокету все же хотелось бы > увидеть, скорее всего изменились они. права к сокету здесь не при чем (root:lp 660), /var/run/cups/cups.sock:631 -- это попытка связаться с хостом /var/run/cups/cups.sock портом 631 -- т.е. путь воспринят как hostname. > Реальная попытка соединения выполняется в CUPS, в httpAddrConnect -- смотрите > http://svn.easysw.com/public/cups/trunk/cups/http-addrlist.c > httpAddrConnect() перебирает все возможные адреса для соединения, которые > прождаются посредством httpAddrGetList() оттуда же (вызывается из > httpConnectEncrypt() c AF_UNSPEC). Т.е. это похоже на ошибку внутри libcups. Что Станислав (inger@) скажет?
Странный урл никакого отношения к проблеме не имеет, его безусловно печатает Самба, потому что она его передает в libcups, как того требует API CUPS, а libcups правильно разбирается в httpAddrGetList() в том, что для URL, начинающихся с /, не нужен порт. Сбой (невозможность открытия сокета) в libcups происходит скорее всего от того, что процесс smbd, который выполняет печать, работает под пользователем, который не имеет доступа к сокету, то есть, он не root и не в ходит в группу lp.
Можно настроить отладку уровня 10 в самбе и прислать мне отладочную информацию? Если дело в правах, то это сразу будет видно.
Скорее всего это проблема в libcups из-за нашего "izvrat" патча. В версии 1.3.1 я лечил это. В 1.4.1 тоже пытался, но видимо не получилось. Сейчас я совершенно не успеваю заниматься пакетом cups. Чтобы убедиться что проблема именно в нашей дополнительной паранойи можно попробовать пересобрать cups без этого патча. (В ответ на комментарий №5) > Странный урл никакого отношения к проблеме не имеет, его безусловно печатает > Самба, потому что она его передает в libcups, как того требует API CUPS, а > libcups правильно разбирается в httpAddrGetList() в том, что для URL, > начинающихся с /, не нужен порт. > > Сбой (невозможность открытия сокета) в libcups происходит скорее всего от того, > что процесс smbd, который выполняет печать, работает под пользователем, который > не имеет доступа к сокету, то есть, он не root и не в ходит в группу lp.
(В ответ на комментарий №7) > Скорее всего это проблема в libcups из-за нашего "izvrat" патча. В версии 1.3.1 > я лечил это. В 1.4.1 тоже пытался, но видимо не получилось. > > Сейчас я совершенно не успеваю заниматься пакетом cups. Чтобы убедиться что > проблема именно в нашей дополнительной паранойи можно попробовать пересобрать > cups без этого патча. Станислав, спасибо вам за диагностику! Да, действительно, пересборка cups без hardened patch помогла. восстановил $ grep Listen /etc/cups/cupsd.conf Listen localhost:631 Listen /var/run/cups/cups.sock передернул cupsd и smb, печать прошла успешно. похоже, надо перевестить баг на libcups.
соответственно просьба пересобрать в 5.1 без hardened
если что, можете выдать acl, я могу пересобрать.
Выдал ACL на cups в 5.1.
(В ответ на комментарий №11) > Выдал ACL на cups в 5.1. Станислав, что вы посоветуете? Выкладывать в 5.1 без hardened патча? или на этот патч у нас что-то завязано?
Выкладывай -- на него было завязано понижение привилегий ещё со времён работы над Castle.
(В ответ на комментарий №13) > Выкладывай -- на него было завязано понижение привилегий ещё со времён работы > над Castle. done new task #20376: owner=viy repo=5.1