Estou tentando usar o samba junto com o CUPS para compartilhar impressoras e seus drivers para máquinas Windows na rede. Toda vez que tento carregar drivers de impressora de uma máquina Windows 10 através do printmanagement.msc, recebo um erro "Acesso negado", mas no lado do servidor posso ver que os arquivos foram criados!
Até agora instalei o samba em uma estação de trabalho Ubuntu 18.04 LTS, criei um usuário samba "root" com uma senha correspondente e editei o smb.conf
[print$]
path = /srv/samba/printer_drivers/
read only = no
guest ok = yes
browseable = yes
wirteable = yes
directory mask = 0775
create mask = 0775
write list = @lpadmin, root
admin users = @lpadmin, root
force user = root
o diretório compartilhado /srv/samba/printer_drivers/ tem as seguintes permissões:
root$ ls -la /srv/samba/printer_drivers/
total 36
drwxrwsr-x 9 root root 4096 Nov 7 14:30 ./
drwxr-xr-x 3 root root 4096 Nov 5 10:24 ../
drwxrwsr-x 2 root root 4096 Nov 7 14:30 IA64/
drwxrwsr-x 2 root root 4096 Nov 7 14:30 W32ALPHA/
drwxrwsr-x 2 root root 4096 Nov 7 14:30 W32MIPS/
drwxrwsr-x 2 root root 4096 Nov 7 14:30 W32PPC/
drwxrwsr-x 2 root root 4096 Nov 7 14:30 W32X86/
drwxrwsr-x 2 root root 4096 Nov 7 14:30 WIN40/
drwxrwsr-x 4 root root 4096 Nov 8 10:41 x64/
Os subdiretórios foram criados automaticamente pelo Windows AddDriver Wizard
Eu conecto o compartilhamento no host do Windows via
net use x: \\hostname\print$ /user:root
Em seguida, insiro a senha que é aceita
the command completed successfully
Posso então navegar para o compartilhamento no Windows Explorer e criar, modificar e excluir arquivos sem problemas. Quando eu abro printmanagement.msc, clico no meu servidor samba (que eu adicionei como servidor de impressão) e selecione "Adicionar driver". Eu posso selecionar um driver da lista e clicar em "Concluir". Posso então ver uma janela de transferência de arquivos do explorer que mostra que os arquivos estão sendo copiados e um ls do diretório compartilhado na máquina Linux mostra que os arquivos estão lá, mas a máquina Windows lança um erro:
"Um driver HP LaserJet (...), Tipo 4 - Usermode x64 não pôde ser instalado. Acesso negado."
Assim que aceito a mensagem de erro com o botão OK, os arquivos de driver no compartilhamento são excluídos.
A saída do smbstatus (as primeiras 3 partes do endereço IP generalizadas por mim):
root$ smbstatus
Samba version 4.7.6-Ubuntu
PID Username Group Machine Protocol Version Encryption Signing
----------------------------------------------------------------------------------------------------------------------------------------
13162 root root *.*.*.119 (ipv4:*.*.*.119:49176) SMB3_11 - partial(AES-128-CMAC)
Service pid Machine Connected at Encryption Signing
---------------------------------------------------------------------------------------------
print$ 13162 *.*.*.119 Thu Nov 8 12:45:30 PM 2018 CET - -
IPC$ 13162 *.*.*.119 Thu Nov 8 12:45:37 PM 2018 CET - -
Locked files:
Pid Uid DenyMode Access R/W Oplock SharePath Name Time
--------------------------------------------------------------------------------------------------
13162 0 DENY_NONE 0x80 RDONLY NONE /srv/samba/printer_drivers . Thu Nov 8 12:45:31 2018
Você digitou errado
wirteable = yes
, deveria serwriteable = yes
, possivelmente isso poderia corrigi-lo. Mas isso é um palpite maluco, eu apenas tropecei aleatoriamente.Além disso,
testparm /etc/samba/smb.conf
é seu amigo sempre que precisar verificar inconsistências em seusmb.conf
arquivo.Eu tive o mesmo problema e acabou por ser um dos drivers. Com outra versão funcionou. Embora eu não tenha conseguido inserir as preferências da impressora no gerenciamento de impressão do windows para definir o tipo padrão de impressão e frente e verso