sexta-feira, 13 de maio de 2016

Erro: IBQUOTA não identifica o usuário - (unknown) dono do Job

O CUPS possui diretivas de privacidade que impede a identificação do dono da impressão. Isto afeta o sistema de controle de cota de impressão, que precisa saber qual o login que enviou o job.
Geralmente quando isto ocorre, o IBQUOTA classifica o dono da impressão como UNKNOWN, veja a foto abaixo:
IBQUOTA: Usuário desconhecido, "unknown".

Como resolver?

Para resolver este problema, basta editar o arquivo de configuração do CUPS, o cupsd.conf:
<Policy default>  
  JobPrivateAccess all
  JobPrivateValues none
</Policy>

Depois é necessário restartar o CUPS:
# service cups restart

Resolvido: O CUPS irá permitir que a informação do dono da impressão (usuário) seja registrada, desta maneira o IBQUOTA será capaz de identificar e registrar o dono do Job (Coluna "login" no relatório).

Apresar de muito simples, algumas pessoas desistem de utilizar o IBQUOTA por causa deste problema.

26 comentários:

  1. Acho esse projeto super interessante e importante! Pouparia algumas centenas de árvores ao economizar papéis em empresas!!! Existe um manual de instalação atualizado? gostaria de fazê-lo em um ubuntu server por exemplo! Obrigado e parabéns!!!

    ResponderExcluir
    Respostas
    1. Olá Sérgio,

      Há uma VM pronta com o IBQUOTA instalado em: http://ibquota.blogspot.com/2016/05/faca-test-drive-no-ibquota-com-linux.html

      No site www.ib.unicamp.br/ibquota também tem documentação de como instalar e contribuições.

      Agradeço a visita!!!

      Excluir
    2. Este comentário foi removido pelo autor.

      Excluir
  2. Boa noite, estou com uma certa dificuldade para adicionar a impressora, pois não sei se devo adicionar ela pelo cups e depois adicionar pela interface grafica gg, e também se posso adicionar uma impressora hp instalando o drive hp-souuce.xxxxx.run. DEVO adiciona-la 2 vezes e uma deixar pausada e compartilhada e a outra habilitada e não compartilhada? Outra coisa, tem que ter "virtual" e "real" nos nomes das impressoras???, no aguardo... albrechtcfn@gmail.com obrigado!!!

    ResponderExcluir
    Respostas
    1. Bom dia Umberto,

      Você deve adicionar duas filas de impressão no CUPS (uma real e a outras virtual, a ultima deve estar parada) e cadastrar no GG (gerenciador gráfico).
      O nome não precisar ter a string "virtual" ou "real".
      Lembrando que apenas a impressora virtual deve estar disponível aos usuários.

      Excluir
    2. Ok amigo, fiz isso, porém a impressão fica retida na fila de impressão e não passa para a impressora real, inclusive utilizando a maquina virtual que vcs disponibilizarão, vc teria algum outro contato que eu poderia fazer com vc? Pois tentei em 2011 instalar o ibquota e infelizmente não consegui que ele realizasse a contagem, hoje já tem documentação que informa a necessidade de um AD para que ele reconheça o usuário, OK, aqui está assim, em 2011 não existia.
      Mas bem amigo, se puder dar uma força, pois a impressão fica pausada na fila de impressão da virtual e não passa para a real. Obrigado e estou no aguardo.

      Excluir
    3. Olá Umberto,
      Você checou se o Daemon do IBQUOTA está em execução? (ibquota.pl). É ele que faz a tratativa do job que está na fila "Virtual" e o encaminha pra fila "Real".

      Excluir
  3. Só pra complementar, estou usando a máquina virtual disponibilizada, a impressão não passa da impressora virtual, fica parada...

    ResponderExcluir
    Respostas
    1. Checar o ibquota.pl, ele precisa estar em execução.

      Excluir
    2. a ai meu erro, como faço para colocar o ibquota.pl em execução? coloco ele como uma execução normal de script na inicialização do sistema? Pode ser assim:
      # update-rc.d ibquota.pl defaults

      Excluir
    3. Link que mostra como iniciar um script automaticamente no linux:
      [https://www.vivaolinux.com.br/dica/Colocando-script-na-inicializacao-do-Linux-(Ubuntu-Debian)]

      Excluir
  4. Outa duvida amigo, gostaria de configurar na mão o ibquota, porém o php5 não está mais disponível, vc teria alguma outra maneira de botar ele em produção com o php7.0 ?
    Obrigado e estou no aguardo...

    ResponderExcluir
    Respostas
    1. Alguma boa alma poderia fazer a conversão para php7! Vamos aguardar.

      Excluir
  5. Ta ai meu erro, como faço para colocar o ibquota.pl em execução? coloco ele como uma execução normal de script na inicialização do sistema? Pode ser assim:
    # update-rc.d ibquota.pl defaults

    ResponderExcluir
    Respostas
    1. Imaginando que você esteja utilizando o Debian ou Ubuntu, sim. Veja este link com maiores detalhes para iniciar um script automaticamente:
      https://www.vivaolinux.com.br/dica/Colocando-script-na-inicializacao-do-Linux-(Ubuntu-Debian)

      Excluir
  6. Companheiro, é obrigado a instalar o samba? Eu possuo uma rede com um servidor ldap e maquinas linux autenticando via PAM, inclusive fiz o teste e quando algum cliente manda para a impressora, aparece o nome do usuario do ldap na fila de impressão. Por isso pergunto se sou obrigado a instalar o samba no servidor ibquota para que possa imprimir. Obrigado e aguardo retorno...

    ResponderExcluir
    Respostas
    1. Não é obrigado instalar o samba. A maneira como você fez, com autenticação via PAM, também funciona.

      Excluir
  7. AMIGO, depois de muito brigar e corrigir as tabelas do mysql, agora qunado mando imprimir algo, aparece isso no arquivo de log: ERRO - Formato de arquivo invalido /var/spool/cups/d00005-001

    ResponderExcluir
    Respostas
    1. Sugiro trocar o drive de impressão, dê preferência por PCL ou PostScript.

      Excluir
    2. Opa blz? Tenho o mesmo problema do colega Umberto, Ubuntu Server 16.04, CUPS 2.1.3-4 https://launchpad.net/ubuntu/+source/cups/2.1.3-4ubuntu0.1, printer: Lexmark CX 510de, PPD: http://www.openprinting.org/printer/Lexmark/Lexmark-CX510de.

      Também estou com o problema do CUPS não contar as páginas, sempre conta 0 páginas e na interface web aparece "Unknown" na coluna "Pages", daí só funciona quota infinita.

      Excluir
    3. Já testei 2 PPDs CX 510 e CX 510de, este último mais específico, mas sem sucesso.

      Excluir
    4. Resolvi aqui, era a compressão do job que interferia na leitura do arquivo e consequentemente não lia o número de páginas, estou utilizando o pkpgcounter em funcoes.pl do ibquota, na função NUMERO_PAGINAS_JOB.

      Excluir
  8. Para mandar sem compressão, é só mandar através da url do cups http://endereco_do_cups:631/printers/impressora?compression=none

    ResponderExcluir
    Respostas
    1. Muito bom!
      Agradecemos o compartilhamento do conhecimento.

      Excluir
    2. O script para ser colocado no funcoes.pl, agradecimentos ao Valério:

      Segue a solução que postei em 2014:

      -------- Mensagem original--------
      Assunto: Re: [ibquota] IBQuota - A Saga continua...
      Data: Thu, 27 Mar 2014 12:12:33 -0300
      De: Valério Sávio Ribeiro
      Responder a: ibquota@...
      Para: ibquota@...


      Já, e substitui o contador do ibquota pelo pkpgcounter (http://www.pykota.com/software/pkpgcounter), talvez ajude no seu caso.

      Instalei o pkpgcounter e substitui a função NUMERO_PAGINAS_JOB() original pela função abaixo após instalar o pkgpcounter.

      sub NUMERO_PAGINAS_JOB() {
      my ($arquivo_job)=@_;
      my $num_paginas=0;

      my $conta_paginas=qx{pkpgcounter $arquivo_job 2> /dev/null};

      # Check return code.
      my $rcode = $?;
      my $crcode = $rcode >> 8;

      if ($rcode == 0){
      $num_paginas=$conta_paginas;
      }
      else{
      &GRAVA_LOG("Não foi possivel contar páginas $arquivo_job","ERRO");
      }

      return ($num_paginas) ;
      }

      Excluir
    3. O contador funcionou apenas com a instalação do pkpgcounter e substituição da função? Ou também foi necessário acrescentar "compression=none" na URL?
      Obrigado pela dica!

      Excluir