Bug 37245 - Проблема при печати на принтер расшареный с Windows
Summary: Проблема при печати на принтер расшареный с Windows
Status: CLOSED FIXED
Alias: None
Product: Branch p8
Classification: Distributions
Component: samba-client (show other bugs)
Version: не указана
Hardware: all Linux
: P3 normal
Assignee: Andrey Cherepanov
QA Contact: qa-p8@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-09-20 10:00 MSK by Anton Shevtsov
Modified: 2021-10-25 04:25 MSK (History)
7 users (show)

See Also:


Attachments
проверка подлинности (142.63 KB, image/jpeg)
2019-09-20 10:00 MSK, Anton Shevtsov
no flags Details
проверка подлинности (210.71 KB, image/jpeg)
2019-09-20 10:00 MSK, Anton Shevtsov
no flags Details
dec2019 (230.19 KB, image/jpeg)
2019-12-06 10:47 MSK, Anton Shevtsov
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Anton Shevtsov 2019-09-20 10:00:02 MSK
Created attachment 8303 [details]
проверка подлинности

На притер подключеный через samba c виндовой машины выскакивает окошко с требованием проверки поддлиности.

игра с AuthInfoRequired в /etc/cups/printers.conf ни к чему не приводит. Только даунгрейд до 4.7.12

есть предположение, что это https://bugzilla.samba.org/show_bug.cgi?id=13970
https://bugzilla.rosalinux.ru/show_bug.cgi?id=9937
https://bugzilla.samba.org/show_bug.cgi?id=13939
Comment 1 Anton Shevtsov 2019-09-20 10:00:25 MSK
Created attachment 8304 [details]
проверка подлинности
Comment 2 Anton Shevtsov 2019-09-20 10:00:38 MSK
тоже самое в сп8
Comment 3 Evgeny Sinelnikov 2019-12-04 00:30:49 MSK
Подготовлены тестовые сборки:
#242153 EPERM #1 [test-only] c8.1 samba.git=4.9.16-alt1 samba-DC.git=dc/4.9.16-alt1 openchange.git=2.4-alt35.zentyal23.8
#242152 EPERM #1 [test-only] p8 samba.git=4.9.16-alt1 samba-DC.git=dc/4.9.16-alt1 openchange.git=2.4-alt35.zentyal23.8

Требуется проверка.
Comment 4 Anton Shevtsov 2019-12-04 13:40:44 MSK
(В ответ на комментарий №3)
> Подготовлены тестовые сборки:
> #242153 EPERM #1 [test-only] c8.1 samba.git=4.9.16-alt1
> samba-DC.git=dc/4.9.16-alt1 openchange.git=2.4-alt35.zentyal23.8
> #242152 EPERM #1 [test-only] p8 samba.git=4.9.16-alt1
> samba-DC.git=dc/4.9.16-alt1 openchange.git=2.4-alt35.zentyal23.8
> 
> Требуется проверка.

apt-repo test 24215 ?
Comment 5 Anton Shevtsov 2019-12-04 13:45:05 MSK
(В ответ на комментарий №4)
> (В ответ на комментарий №3)
> > Подготовлены тестовые сборки:
> > #242153 EPERM #1 [test-only] c8.1 samba.git=4.9.16-alt1
> > samba-DC.git=dc/4.9.16-alt1 openchange.git=2.4-alt35.zentyal23.8
> > #242152 EPERM #1 [test-only] p8 samba.git=4.9.16-alt1
> > samba-DC.git=dc/4.9.16-alt1 openchange.git=2.4-alt35.zentyal23.8
> > 
> > Требуется проверка.
> 
> apt-repo test 24215 ?

разобрался.. apt-repo add task 242152
Comment 6 Anton Shevtsov 2019-12-05 08:59:15 MSK
(В ответ на комментарий №5)
> (В ответ на комментарий №4)
> > (В ответ на комментарий №3)
> > > Подготовлены тестовые сборки:
> > > #242153 EPERM #1 [test-only] c8.1 samba.git=4.9.16-alt1
> > > samba-DC.git=dc/4.9.16-alt1 openchange.git=2.4-alt35.zentyal23.8
> > > #242152 EPERM #1 [test-only] p8 samba.git=4.9.16-alt1
> > > samba-DC.git=dc/4.9.16-alt1 openchange.git=2.4-alt35.zentyal23.8
> > > 
> > > Требуется проверка.
> > 
> > apt-repo test 24215 ?
> 
> разобрался.. apt-repo add task 242152

Коллега говорит проблема осталась. Задание не уходит просто.
Comment 7 Evgeny Sinelnikov 2019-12-05 16:14:34 MSK
Поскольку патчи приложены, а проблема не решена, нужно её как-то воспроизвести.

Каково окружение?
Я правильно понимаю такой вариант:
- принтер установлен на linux-сервере;
- linux-сервер подключен к домену
- контроллеры домены работают под управлением Windows Server.
Если так, то нужны такие подробности:
- настройки cups;
- настройки samba;
- версии клиента и сервера под Windows.
Comment 8 Evgeny Sinelnikov 2019-12-05 16:23:48 MSK
Уточнение.

Из двух фотографий в приложении видно, что клиенты, судя по всему, разные: один linux, другой - windows.

В этом случае - нужны настройки cups на клиенте для диагностики.
Comment 9 Lenar Shakirov 2019-12-05 17:53:47 MSK
(В ответ на комментарий №8)
> Уточнение.
> 
> Из двух фотографий в приложении видно, что клиенты, судя по всему, разные: один
> linux, другой - windows.

На обоих линух, прост вас оформление окон сбило с толку)

Стенд очень простой:

Windows с расшаренным принтером, с доступом по логину паролю

# cat /etc/cups/printers.conf
# Printer configuration file for CUPS v2.1.0
# Written by cupsd
# DO NOT EDIT THIS FILE WHEN CUPSD IS RUNNING
<DefaultPrinter Xerox-Phaser-3020>
UUID urn:uuid:ec1df7d0-6166-3f97-4bb4-3d6f65223ccd
AuthInfoRequired none
Info Xerox Phaser 3020
MakeModel Xerox Phaser 3020
DeviceURI smb://gp181-222:user333@10.10.10.10/Xerox%20WorkCentre%203025
State Idle
StateTime 1575557336
ConfigTime 1573633780
Type 4164
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer
</DefaultPrinter>

Наличие или отсутствие "AuthInfoRequired none" никак не влияет, задание молча висит в "lpq -a"

В samba-4.7.12-alt1 c8.1+228113.200.7.1 все работает как и сто лет до этого начиная с branch 4.0
Comment 10 Evgeny Sinelnikov 2019-12-05 20:36:44 MSK
А как это работает?

Насколько я понимаю так:
1) в cups прописан принтер, работающий по протоколу smb://
2) доступ к принтеру осуществляется по логину/паролю
3) судя по ошибке на фотографиях, логин/пароль не принимается - то ли некорректно передаются учётные данные, то ли в неправильном окружении;
4) судя по всему их некорректно отрабатывает приложение smbspool:
 $ ls  /usr/lib/cups/backend/smb  -l
lrwxrwxrwx 1 root root 17 окт 29 17:01 /usr/lib/cups/backend/smb -> /usr/bin/smbspool
 $ rpm -qf /usr/lib/cups/backend/
cups-2.2.11-alt1.x86_64
 $ rpm -qf /usr/lib/cups/backend/smb
samba-client-4.10.10-alt1.x86_64
 $ rpm -qf /usr/bin/smbspool 
samba-client-4.10.10-alt1.x86_64

Есть подозрение, что это очередной случай неявного ограничения работы клиента на уровне поддержки устаревших протоколов.

В связи с этим хотелось бы увидеть smb.conf, а также проверить печать с такой настройкой:
client max protocol = NT1

Есть вероятность, что патч, в данном случае, может быть, и не нужен.
Comment 11 mikhailnov 2019-12-05 22:32:01 MSK
https://lists.samba.org/archive/samba-technical/2019-November/134607.html

>> Please read a recent thread
>> https://lists.samba.org/archive/samba-technical/2019-October/134470.html
>> "Automating usage of smbspool_krb5_wrapper" from start to end, in the
>> first email problem is explained and in the last patches are attached. I
>> would appreceate if you test them in Ubuntu: they allow to symlink
>> /usr/lib/cups/backend/smb -> smbspool_krb5_wrapper instead of smbspool
>> and make printing work out of the box both with and without Kerberos.
>
> Thanks for the pointer.
>
> https://git.samba.org/?p=asn/samba.git;a=commitdiff;h=d5e8813b1f8219da231e82735780e3e6c35c66e2
>
> and
>
> https://git.samba.org/?p=asn/samba.git;a=commitdiff;h=20dd0308aa072ed656550af487338b50cda9b59f
>
> Seem to be going in the direction of fixing the present issue. Has
> anybody tried those yet, or what is their state?
Comment 12 Evgeny Sinelnikov 2019-12-05 23:50:52 MSK
(In reply to comment #11)
> https://lists.samba.org/archive/samba-technical/2019-November/134607.html
...

Это интересно. Спасибо, Михаил.

Что тут сказано?
"Я оценил бы, если бы вы проверили их (имеются в виду патчи) в Ubuntu: они позволяют символическую ссылку /usr/lib/cups/backend/smb -> smbspool_krb5_wrapper вместо smbspool и сделать печать из коробки как с Kerberos, так и без".

Не очень понятно, поможет ли это, но control такой впилить не помешает, чтобы задавать эту симлинку.

Вариант для текущей проблемы - проверить работу, задав:
# ln -sf /usr/lib/samba/smbspool_krb5_wrapper /usr/lib/cups/backend/smb
# ls -l /usr/lib/cups/backend/smb
lrwxrwxrwx 1 root root 36 Dec  5 20:17 /usr/lib/cups/backend/smb -> /usr/lib/samba/smbspool_krb5_wrapper
# /usr/lib/cups/backend/smb
DEBUG: SMBSPOOL_KRB5 - AUTH_INFO_REQUIRED is not set - execute smbspool
network smb "Unknown" "Windows Printer via SAMBA"

___________________________

Но, я думаю, что я нашёл проблему. Просматривая код smbspool, я наткнулся на куски, которые имеются в новой samba-4.10, а к ним и бага соответствующая - "username/password authentication doesn't work with CUPS and smbspool":
https://bugzilla.samba.org/show_bug.cgi?id=14128

Я отправил на сборку тестовую задачу, прошу потестировать, когда собирётся:
#242152 BUILDING #2 [locked] [test-only] p8 samba.git=4.9.16-alt1 samba-DC.git=dc/4.9.16-alt1 openchange.git=2.4-alt35.zentyal23.8
Comment 13 mikhailnov 2019-12-06 00:01:54 MSK
(В ответ на комментарий №12)
> 
> Не очень понятно, поможет ли это, но control такой впилить не помешает, чтобы
> задавать эту симлинку.
> 
А еще лучше помочь протестировать патчи https://lists.samba.org/archive/samba-technical/2019-November/134593.html чтобы всегда в дистрибутвие поставлять симлинк на smbspool_krb5_wrapper и не переключать его.
У меня получается убедиться, что их логика правильная, но вот как настроить smb.conf контроллера домена, чтобы доступ к принтерам был для членов домена -- загадка.

> https://bugzilla.samba.org/show_bug.cgi?id=14128
А вот это интересно...
Comment 14 Lenar Shakirov 2019-12-06 10:21:07 MSK
(В ответ на комментарий №12)
> Я отправил на сборку тестовую задачу, прошу потестировать, когда собирётся:
> #242152 BUILDING #2 [locked] [test-only] p8 samba.git=4.9.16-alt1
> samba-DC.git=dc/4.9.16-alt1 openchange.git=2.4-alt35.zentyal23.8

Не помогло, включил LogLevel debug:

https://pastebin.com/4zF5S34W
Comment 15 Lenar Shakirov 2019-12-06 10:26:31 MSK
Это лог с той же машины с даунгрейдом на samba-4.7.12-alt1 (работает)

https://pastebin.com/FTbqZi7G
Comment 16 Lenar Shakirov 2019-12-06 10:38:38 MSK
Сравнил логи

В 4.7.12:
Connected with username/password...
и все норм

в 4.9.16:
Try to connect using username/password ...
SMB connection established.
NT_STATUS_ACCESS_DENIED opening remote spool _stdin_

<skip>

Set job-printer-state-message to "NT_STATUS_ACCESS_DENIED opening remote spool _stdin_", current level=ERROR
get_exit_code(nt_status=NT_STATUS_ACCESS_DENIED [c0000022])
ATTR: auth-info-required=username,password
 load_ppd: Loading /var/cache/cups/Xerox-Phaser-3020.data...

<skip>

 cupsdMarkDirty(P----)
 cupsdSetBusyState: newbusy="Printing jobs and dirty files", busy="Printing jobs and dirty files"
 Discarding unused job-progress event...
 Discarding unused printer-state-changed event...
PID 9489 (/usr/lib/cups/backend/smb) stopped with status 2.

<skip>

Backend returned status 2 (authentication required)

<skip>

Job held for authentication.
Comment 17 Anton Shevtsov 2019-12-06 10:47:26 MSK
Created attachment 8452 [details]
dec2019
Comment 18 Anton Shevtsov 2019-12-06 10:47:44 MSK
Если это важно.
Когда в сентябре создал баг - то ситуация была вот такая.
Windows не в домене, Linux в домене. Принтер подключается в альт с Windows (использовался логин\пасс локального виндового пользователя. если я не путаю)

Сейчас в одной поликлинике попросил, они создали ситуацию.
Windows не в домене, Linux не в домене. И все тоже самое.
Comment 19 Lenar Shakirov 2019-12-06 11:24:25 MSK
(В ответ на комментарий №10)
> Есть подозрение, что это очередной случай неявного ограничения работы клиента
> на уровне поддержки устаревших протоколов.
> 
> В связи с этим хотелось бы увидеть smb.conf, а также проверить печать с такой
> настройкой:
> client max protocol = NT1
> 
> Есть вероятность, что патч, в данном случае, может быть, и не нужен.

О! А вот это помогло!

Вот такой smb.conf на samba-4.9.16-alt1 работает с "client max protocol = NT1"

https://pastebin.com/CSBr8FXN
Comment 20 Evgeny Sinelnikov 2019-12-06 22:32:20 MSK
(In reply to comment #19)
> (В ответ на комментарий №10)
> > В связи с этим хотелось бы увидеть smb.conf, а также проверить печать с такой
> > настройкой:
> > client max protocol = NT1
> О! А вот это помогло!
> 
> Вот такой smb.conf на samba-4.9.16-alt1 работает с "client max protocol = NT1"

Правильно ли я понимаю, что обновление (кроме опции client max protocol = NT1) тоже требуется для решения данной проблемы. Что одной опции недостаточно или, всё-таки, достаточно?
Comment 21 Anton Shevtsov 2019-12-09 15:04:36 MSK
(В ответ на комментарий №20)
> (In reply to comment #19)
> > (В ответ на комментарий №10)
> > > В связи с этим хотелось бы увидеть smb.conf, а также проверить печать с такой
> > > настройкой:
> > > client max protocol = NT1
> > О! А вот это помогло!
> > 
> > Вот такой smb.conf на samba-4.9.16-alt1 работает с "client max protocol = NT1"
> 
> Правильно ли я понимаю, что обновление (кроме опции client max protocol = NT1)
> тоже требуется для решения данной проблемы. Что одной опции недостаточно или,
> всё-таки, достаточно?

Смотритите. Я на тех машинах, что тестил, обновлял самбу из вашего таска.
Таким образом можно допустить, что обновление все же нужно.
Проблема в другом, переключать ВСЮ самбу на работу в старинном протоколе ради печати - это ненормально.
Comment 22 Anton Shevtsov 2019-12-11 09:29:08 MSK
(В ответ на комментарий №21)
> (В ответ на комментарий №20)
> > (In reply to comment #19)
> > > (В ответ на комментарий №10)
> > > > В связи с этим хотелось бы увидеть smb.conf, а также проверить печать с такой
> > > > настройкой:
> > > > client max protocol = NT1
> > > О! А вот это помогло!
> > > 
> > > Вот такой smb.conf на samba-4.9.16-alt1 работает с "client max protocol = NT1"
> > 
> > Правильно ли я понимаю, что обновление (кроме опции client max protocol = NT1)
> > тоже требуется для решения данной проблемы. Что одной опции недостаточно или,
> > всё-таки, достаточно?
> 
> Смотритите. Я на тех машинах, что тестил, обновлял самбу из вашего таска.
> Таким образом можно допустить, что обновление все же нужно.
> Проблема в другом, переключать ВСЮ самбу на работу в старинном протоколе ради
> печати - это ненормально.

(В ответ на комментарий №20)
> (In reply to comment #19)
> > (В ответ на комментарий №10)
> > > В связи с этим хотелось бы увидеть smb.conf, а также проверить печать с такой
> > > настройкой:
> > > client max protocol = NT1
> > О! А вот это помогло!
> > 
> > Вот такой smb.conf на samba-4.9.16-alt1 работает с "client max protocol = NT1"
> 
> Правильно ли я понимаю, что обновление (кроме опции client max protocol = NT1)
> тоже требуется для решения данной проблемы. Что одной опции недостаточно или,
> всё-таки, достаточно?

Просто добавление строки client max protocol = NT1 недостаточно.
Comment 23 Repository Robot 2019-12-12 07:01:01 MSK
samba-DC-4.9.16-alt1 -> p8:

Mon Dec 02 2019 Evgeny Sinelikov <sin@altlinux> 4.9.16-alt1
- Update to last winter release of samba-4.9 (closes: 37245)
- Fix print using spoolss with kerberos credentials: SAMBA#13939
- username/password authentication doesn't work with CUPS and smbspool: SAMBA#14128
Comment 24 Anton Shevtsov 2019-12-12 07:24:34 MSK
(В ответ на комментарий №23)
> samba-DC-4.9.16-alt1 -> p8:
> 
> Mon Dec 02 2019 Evgeny Sinelikov <sin@altlinux> 4.9.16-alt1
> - Update to last winter release of samba-4.9 (closes: 37245)
> - Fix print using spoolss with kerberos credentials: SAMBA#13939
> - username/password authentication doesn't work with CUPS and smbspool:
> SAMBA#14128

только SAMBA-DC ?
Comment 25 Evgeny Sinelnikov 2019-12-12 11:17:01 MSK
(In reply to comment #24)
> только SAMBA-DC ?

Всё в порядке, обе сборки samba обновлены. Вот сборочная задача:
http://webery.altlinux.org/task/242152