У меня Samba 4.2.10 и CUPS 1.7.5, работающие на Debian 8. Сервер является членом домена. В CUPS у меня есть несколько принтеров, и я поделился ими с Samba. Печать тестовой страницы из CUPS работает нормально, печать из Windows-клиента через IPP и Samba работает нормально. Я хотел бы установить Point'n'Print - совместное использование драйверов Windows в print $ share, чтобы клиент Windows мог автоматически их подбирать при подключении к принтеру.
Я сохранил драйверы CUPS и Windows PS в /usr/share/samba/drivers
как указано в каждом учебном пособии, которое я нашел, и попытался экспортировать их:
cupsaddsmb -U root -a -v
Команда создает папки W32X86 и x64 в общей папке print$
, копирует файлы драйвера и затем пытается связать драйвер с принтером с помощью команды:
rpcclient localhost -N -A /tmp/0141f574d8313 -c 'setdriver PV PV'
И это заканчивается этой ошибкой:
resolve_lmhosts: Attempting lmhosts lookup for name localhost<0x20>
resolve_lmhosts: Attempting lmhosts lookup for name localhost<0x20>
resolve_wins: WINS server resolution selected and no WINS servers listed.
resolve_hosts: Attempting host lookup for name localhost<0x20>
Connecting to ::1 at port 445
Doing spnego session setup (blob length=96)
got OID=1.2.840.48018.1.2.2
got OID=1.2.840.113554.1.2.2
got OID=1.3.6.1.4.1.311.2.2.10
got principal=not_defined_in_RFC4178@please_ignore
GENSEC backend 'gssapi_spnego' registered
GENSEC backend 'gssapi_krb5' registered
GENSEC backend 'gssapi_krb5_sasl' registered
GENSEC backend 'spnego' registered
GENSEC backend 'schannel' registered
GENSEC backend 'naclrpc_as_system' registered
GENSEC backend 'sasl-EXTERNAL' registered
GENSEC backend 'ntlmssp' registered
GENSEC backend 'ntlmssp_resume_ccache' registered
GENSEC backend 'http_basic' registered
GENSEC backend 'http_ntlm' registered
GENSEC backend 'krb5' registered
GENSEC backend 'fake_gssapi_krb5' registered
Got challenge flags:
Got NTLMSSP neg_flags=0x62898215
NTLMSSP: Set final flags:
Got NTLMSSP neg_flags=0x62088215
NTLMSSP Sign/Seal - Initialising with flags:
Got NTLMSSP neg_flags=0x62088215
NTLMSSP Sign/Seal - Initialising with flags:
Got NTLMSSP neg_flags=0x62088215
SetPrinter call failed!
result was WERR_ACCESS_DENIED
Как упоминалось здесь, пользователь, под которым выполняется эта команда, должен иметь SePrintOperatorPrivilege. Так как я запускаю это как root, я добавил пользователя в samba:
smbpasswd -a root
и добавьте желаемую привилегию:
net rpc rights grant root SePrintOperatorPrivilege
И я проверил настройки:
# net rpc rights list root
SeMachineAccountPrivilege
SeRemoteShutdownPrivilege
SePrintOperatorPrivilege
SeAddUsersPrivilege
SeDiskOperatorPrivilege
Кажется, все просто отлично. Итак, давайте снова свяжем драйвер и принтер вручную:
# rpcclient localhost -c 'setdriver PV PV'
Registered MSG_REQ_POOL_USAGE
Registered MSG_REQ_DMALLOC_MARK and LOG_CHANGED
Enter root's password:
Connecting to ::1 at port 445
Doing spnego session setup (blob length=96)
got OID=1.2.840.48018.1.2.2
got OID=1.2.840.113554.1.2.2
got OID=1.3.6.1.4.1.311.2.2.10
got principal=not_defined_in_RFC4178@please_ignore
GENSEC backend 'gssapi_spnego' registered
GENSEC backend 'gssapi_krb5' registered
GENSEC backend 'gssapi_krb5_sasl' registered
GENSEC backend 'spnego' registered
GENSEC backend 'schannel' registered
GENSEC backend 'naclrpc_as_system' registered
GENSEC backend 'sasl-EXTERNAL' registered
GENSEC backend 'ntlmssp' registered
GENSEC backend 'ntlmssp_resume_ccache' registered
GENSEC backend 'http_basic' registered
GENSEC backend 'http_ntlm' registered
GENSEC backend 'krb5' registered
GENSEC backend 'fake_gssapi_krb5' registered
Got challenge flags:
Got NTLMSSP neg_flags=0x62898215
NTLMSSP: Set final flags:
Got NTLMSSP neg_flags=0x62088215
NTLMSSP Sign/Seal - Initialising with flags:
Got NTLMSSP neg_flags=0x62088215
NTLMSSP Sign/Seal - Initialising with flags:
Got NTLMSSP neg_flags=0x62088215
SetPrinter call failed!
result was WERR_ACCESS_DENIED
Та же проблема, и у меня заканчиваются идеи. Я вижу файлы драйвера в print$
share и вижу их через консоль printmanagement.msc
на клиенте Windows. В этой консоли управления я также не могу выполнить ассоциацию. При сохранении диалогового окна я получаю «Настройки принтера не могут быть сохранены. Доступ закрыт.". Вероятно, та же проблема, что и выше. Но в этом случае я обращаюсь к этому как пользователь домена, у которого нет SePrintOperatorPrivilege, так что не вините здесь :)