Bug 55887

Summary: В Samba не работает аутентификация к общему принтеру клиента Windows без указания имени и пароля в адресе smb:// принтера
Product: Sisyphus Reporter: Artem Varaksa <varaksaaa>
Component: sambaAssignee: Evgeny Sinelnikov <sin>
Status: NEW --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: sin
Version: unstable   
Hardware: x86_64   
OS: Linux   
See Also: https://bugzilla.altlinux.org/show_bug.cgi?id=41129
Attachments:
Description Flags
Ошибка в CUPS none

Description Artem Varaksa 2025-09-05 17:31:14 MSK
Шаги
====

1. Развернуть домен Samba DC на ALT Server 11.0 x86_64 (minimal).

Указать в /etc/samba/smb.conf:

[printers]
    comment = All Printers
    path = /var/spool/samba
    browseable = no
    guest ok = yes
    read only = no
    printable = yes

[media]
    comment = media
    browseable = yes
    path = /media
    read only = no
    guest ok = yes

2. Ввести в домен клиентов ALT (с помощью SSSD) и клиента Windows 10 Pro 22H2.

3. Создать на Samba DC пользователя testuser с паролем 123.

4. Настройка принтера на клиенте Windows:

- Войти с помощью доменного пользователя testuser
- Подключить принтер к клиенту Windows
- Для Windows 7:
  - Меню приложений -> Устройста и принтеры
  - ПКМ на принтере -> Свойства принтера
- Для Windows 10:
  - Дождаться уведомления о начале, а затем успешном завершении настройки принтера
  - Пуск > Параметры > Устройства > Принтеры и сканеры
  - Нажать на принтер > Управление > Свойства принтера
- Ввести имя SharePrinter > ОК
- Снова зайти в свойства принтера
  - Примечание: после нажатия ОК на Windows 10 для открытия свойств заново требуется выйти назад и выбрать принтер снова по новому имени
- Перейти на вкладку Доступ
- Дождаться загрузки, нажать Настроить общий доступ
- Ввести логин и пароль администратора домена
- Включить чекбоксы:
  - Общий доступ к данному принтеру
  - Прорисовка заданий на клиентских компьютерах (рекомендуется)
  - Внести в Active Directory
- Имя оставить SharePrinter
- Применить

5. На клиенте ALT:

- Открыть Настройки CUPS (http://localhost:631)
- Администрирование
  - При запросе аутентификации ввести root и его пароль
  - Добавить принтер
  - Windows printer via SAMBA > Продолжить
  - Ввести `smb://<windows-client-ip>/SharePrinter`
  - Название: SharePrinter > Продолжить
  - Выбрать подходящий драйвер (можно воспользоваться поиском по странице Ctrl+F): марку > Продолжить > модель
  - Добавить принтер
- Перейти в Принтеры > SharePrinter
  - Обслуживание > Печать пробной страницы


Фактический результат
=====================

Отображается статус задачи Приостановлено, Session setup failed: NT_STATUS_ACCESS_DENIED (см. скриншот).


Ожидаемый результат
===================

Успешная печать. Возможен запрос аутентификации.


Дополнительно
=============

Если изменить адрес на `smb://testuser:123@<ip windows клиента>/SharePrinter`, то печать успешна.

Аналогичное поведение наблюдается и с `smbspool`:

> # smbspool smb://<windows-client-ip>/SharePrinter testjob testuser 1 1 <(echo qa)
> kerberos_ccache_is_valid: Failed to get default principal from ccache: KEYRING:persistent:0
> DEBUG: This backend requires credentials!
> DEBUG: get_exit_code(nt_status=NT_STATUS_ACCESS_DENIED [c0000022])
> ATTR: auth-info-required=samba
> DEBUG: Unable to connect to CIFS host: NT_STATUS_ACCESS_DENIED

> # echo 123 | kinit testuser && smbspool smb://<windows-client-ip>/SharePrinter testjob testuser 1 1 <(echo qa)
> Password for testuser@SAMBA.TESTDOMAIN:
> DEBUG: Try to authenticate as testuser@SAMBA.TESTDOMAIN
> ERROR: Session setup failed: NT_STATUS_INVALID_PARAMETER
> ERROR: Session setup failed: NT_STATUS_LOGON_FAILURE
> ERROR: Session setup failed: NT_STATUS_ACCESS_DENIED
> DEBUG: get_exit_code(nt_status=NT_STATUS_ACCESS_DENIED [c0000022])
> ATTR: auth-info-required=negotiate
> DEBUG: Unable to connect to CIFS host: NT_STATUS_ACCESS_DENIED

> # smbspool smb://testuser:123@<windows-client-ip>/SharePrinter testjob testuser 1 1 <(echo qa)
> DEBUG: Try to connect using username/password ...
> DEBUG: SMB connection established.

Также см.:
- https://bugzilla.altlinux.org/41129
- https://bugzilla.samba.org/show_bug.cgi?id=15057
- https://bbs.archlinux.org/viewtopic.php?id=245658


Воспроизводимость
=================

Воспроизводится на виртуальных машинах:

[sisyphus]
samba-4.21.7-alt4.x86_64
cups-2.4.12-alt2.x86_64
sssd-2.9.7-alt3.x86_64

[p11+387440.10]
samba-4.21.7-alt4.x86_64
cups-2.4.12-alt2.x86_64
sssd-2.9.7-alt3.x86_64

[p11]
samba-4.20.8-alt2.x86_64
cups-2.4.12-alt2.x86_64
sssd-2.9.7-alt1.x86_64
Comment 1 Artem Varaksa 2025-09-05 17:31:42 MSK
Created attachment 19493 [details]
Ошибка в CUPS