Eu tenho o Samba 4.2.10 e o CUPS 1.7.5 rodando no Debian 8. O servidor é membro do domínio. No CUPS eu tenho várias impressoras e as compartilhei com o Samba. Imprimir página de teste do CUPS funciona bem, imprimindo a partir do cliente Windows via IPP e o Samba funciona bem. Eu gostaria de configurar o Point'n'Print - ter drivers do Windows compartilhados no compartilhamento $ print para que o cliente Windows possa obtê-los automaticamente quando conectado à impressora.
Eu armazenei os drivers CUPS e Windows PS em /usr/share/samba/drivers
conforme declarado em cada tutorial que encontrei e tentei exportá-los por:
cupsaddsmb -U root -a -v
O comando cria as pastas W32X86 e x64 no compartilhamento print$
, copia os arquivos do driver e tenta associar o driver à impressora usando o comando:
rpcclient localhost -N -A /tmp/0141f574d8313 -c 'setdriver PV PV'
E isso acaba com esse erro:
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
Como mencionado aqui , o usuário sob o qual este comando é executado deve ter o SePrintOperatorPrivilege. Como estou executando isso como root, adicionei o usuário ao samba:
smbpasswd -a root
e adicione o privilégio desejado:
net rpc rights grant root SePrintOperatorPrivilege
E eu verifiquei as configurações:
# net rpc rights list root
SeMachineAccountPrivilege
SeRemoteShutdownPrivilege
SePrintOperatorPrivilege
SeAddUsersPrivilege
SeDiskOperatorPrivilege
Tudo parece estar bem. Então, vamos associar o driver e a impressora novamente, manualmente:
# 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
O mesmo problema e estou ficando sem ideias. Eu posso ver os arquivos do driver em print$
share e posso vê-los via printmanagement.msc
console no cliente Windows. Nesse console de gerenciamento também não posso fazer a associação. Ao salvar a caixa de diálogo, recebo "As configurações da impressora não puderam ser salvas. Acesso negado.". Provavelmente o mesmo problema acima. Mas neste caso eu estou acessando isso como usuário de domínio que não tem o SePrintOperatorPrivilege, então não há culpa aqui:)