Summary: | can't print to samba shared printers | ||
---|---|---|---|
Product: | Branch 5.1 | Reporter: | viy <viy> |
Component: | libcups | Assignee: | inger <inger> |
Status: | CLOSED FIXED | QA Contact: | QA 5.1 <qa-5.1> |
Severity: | normal | ||
Priority: | P3 | CC: | ab, inger, mike |
Version: | unspecified | ||
Hardware: | all | ||
OS: | Linux |
Description
viy
2010-01-23 20:04:45 MSK
Станислав, не встречались с такой бякой 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. |