Tive que vir logo antes que eu esqueça de postar. E considerei mto importante.
Bom to com o meu servidor de impressão rodando legal, eu sei que eu prometi colocar o passo a passo dele aqui, mas não consegui tempo pra fazer ainda, mas vai sair...
Continuando...
To rodando o samba e ele está autenticando no AD do windows. Beleza até aí.
Tive que colocar ele pra autenticar no AD porque do contrário eu não ia conseguir ter os nomes dos usuários na relatório de impressão, mas isso é outra história que fica pra outra hora.
Pois bem! meu maior problema, até alguns minutos atrás, era de adicionar o driver a impressora. Eu criava a impressora no cups e estava fazendo o procedimento via Windows pra adicionar o driver. Que por sinal via Windows é muito mais simples do que via rpcclient. Se alguém quiser informações de como fazer alguma dessas maneiras acesse
isso aqui.
Bom, eu estava acessando o compartilhamento do samba com meu usuário que estava no AD. E esse usuário estava na lista
printer admin do smb.conf. O que pra mim, daria direito a poder manejar as impressoras. Porém eu não conseguia adicionar o driver a impressora, os campos estavam inativos.
A minha solução estava sendo uma das piores: alterar o mode de autenticação do samba para "user", ao invés de "ADS" e utilizar o usuário root do samba(criado com o
smbpasswd). Aí tudo perfeito.
Só que isso estava se tornando um incômodo pra mim, pois por alguns minutos, enquanto eu adionava o driver da impressora como root, eu rezava para alguma entidade pedindo que ninguém mandasse imprimir, do contrário a impressão não seria aceito pois o usuário só existia no AD e não na base de usuários do samba(lembrem-se que eu alterei o modo de autenticação pra "user").
Depois de eu ter adiconado o driver eu voltava para a opção ADS e tudo estava funcionando.
Como eu disse a cada dia estou adicionando mais impressoras no cups, migrando do servidor windows, e para adicionar o driver eu deveria fazer todo este procedimento no final do expediente para não atrapalhar.
Ufa...
Agora vamos a solução.
Antes de tudo:
Uma coisa estava me incomodando: Qualquer comando relacionado com o samba me retornava: "
WARNING: The "printer admin" option is deprecated".
E o pior esse printer admin não deixava eu adicionar o driver. Ele não me dava esse direito. Mas vamos continuar...
Descobri lendo a documentação do samba, muiiiitoo completa, que realmente a opção printer admin está obsoleta e devemos dar direito aos usuários usando o
net rpc rights.
A documentação sobre direitos no samba encontra-se
aqui.
Antes de mais nada, devemos executar essa aplicação como root do samba. Por isso, se você assim como eu usa o modo de autenticação ADS altere para users. Prometo que vai ser a última vez ;-) Não esqueça de restartar o serviço para que entre em vigor.
sete a senha do root do samba, caso ainda não tenha. Antes de perguntar, sim o root do samba é diferente do root do sistema. O samba tem uma base de usuários diferente da base do linux.
smbpasswd root
agora vamos dar privilégio de operador de impressoras ao usuários joão.
net -U root -S localhost rpc rights grant joao SePrintOperatorPrivilege
se tudo der certo vai aparecer:
Successfully granted rights.para listar as permissões desse usuário e conferir se realmente ele recebeu esse direito, use:
net -U root -S localhost rpc rights list joao
Vão ser listadas as permissões dessa criatura.
Para remover algum direito é simples também, use revoke ao invés e grant(como no sql):
net -U root -S localhost rpc rights revoke joao SePrintOperatorPrivilege
Isso dá direito de adicionar os drivers às impressoras compartilhadas pelo samba. Se quer saber quais os outros direitos possíveis para os usuários leia a documentação sobre direitos linkada acima.
Agora sim, pode voltar pro modo de autenticação usado e reiniciar o samba. Pronto.
Só pro lembrar na documentação diz que esse direito é exatamente a mesma coisa que o parâmetro printer admin do smb.conf.
Porém com o printer admin não funciona. Sei lá...
To cansado de digitar já.. chega pra hoje....
Ahhh ia esquecendo.. para adicionar os drivers via windows ou rpcclient(que eu uso quando eu já tenho os drivers no servidor) acessem o primeiro link que tem no post.. lá ensina os dois procedimentos, tanto via APW(assistente de Impressoras do Windows) quanto via rpcclient.