Página 1 de 1

Compartilhamento de Impressoras no Samba

Enviado: 28 Jun 2013 00:37
por marcelo0786
Antigamente, nas primeiras versões do Samba, criar um simples compartilhamento de impressora era uma tarefa difícil, já  que antes você precisaria verificar exatamente qual o sistema de impressão usado para a instalação, e especificar os comandos no Samba. Atualmente configurar impressora tornou-se uma coisa fácil, pois dependendo da versão do Samba é preciso adicionar duas linhas na seção [global]:

printing = cups
load printers = yes

Na verdade, as ultimas versões do Samba tornam a inclusão dessas linhas desnecessárias, pois elas já são consideradas como padrão. Pois o CUPS já é o sistema usado por padrão.

Agora se vocês esta usando uma versão antiga, ou não sabe se a versão tem suporte aos CUPS, basta digitar no terminal o seguinte comando:

sudo smbd -b | grep CUPS

Se você tiver o seguinte retorno:

HAVE_CUPS

Isso que dizer que seu Samba possui suporte nativo ao CUPS. Caso contrário você terá que instalar ele com o seguinte comando:

sudo apt-get install cups


Após a instalação do CUPS, o endereço de acesso é http://localhost:631, mais se você substituir o local hosta pelo o ip do servidor e estiver acessando de outra máquina, não será possível ter acesso às opções de administrador ( como adicionar ou remover impressoras). Para você acessar as opções de administrador de qualquer lugar, é necessário editar o arquivo de configuração do CUPS. Utilize o seguinte comando:

sudo vi /etc/cups/cuped.conf

Após abrir o arquivo procure a seção referente à pasta "/admin" e adicione uma linha autorizando o endereço ip ( ou faixa de IPs, caso você queira que várias máquinas tenham privilégios de acesso) da sua máquina logo abaixo da linha:

ALLOW localhost. Ou seja, a seção /admin deve ficar mais ou menos assim


<Location /admin>
Order allow, deny
Allow localhost
Allow "ip da sua máquina"
<location>

Depois de adicionar a linha, salve e reinicie o serviço do CUPS através do comando:

sudo /etc/init.d/cupsys restart

A partir de agora você já pode acessar a interface web do CUPS de qualquer máquina sem limitação.

Agora iremos criar a seção [printers] no Samba, pois essa é a forma mais simples de compartilhar impressoras.
Para habilitar o [printers], basta adicionar o trecho abaixo no smb.conf:

[printers]
print ok = yes
guest ok = yes
path = /var/spool/samba
browseable = yes

Dica importante: lembre-se de configurar o acesso como 777 a pasta /var/spool/samba. para que todos os usuários possam imprimir.

Apenas por segurança, lembre-se de também de adicionar as linhas a baixo na seção [global]:

printing = cups
load printers = yes


A vantagem de se usar o sistema de compartilhamento de impressoras é que você pode centralizar todos os serviços de impressão.

Definindo acesso para alguns endereços IP:

[printers]
print ok = yes
guest ok = yes
path = /var/spool/samba
browseable = yes
hosts allow = 192.168.0.2, 192.168.0.3

Usando nomes das máquinas Windows ao invés de IPs:

[printers]
print ok = yes
guest ok = yes
path = /var/spool/samba
browseable = yes
hosts allow = M2R001, NB2R034

Bloqueando a impressão para alguns usuários:

[printers]
print ok = yes
guest ok = yes
path = /var/spool/samba
browseable = yes
invalid users = marcelo, joão

OU liberando acesso apenas para alguns usuários:


[printers]
print ok = yes
guest ok = yes
path = /var/spool/samba
browseable = yes
valid users = marcelo, joão

Liberando para um grupo de usuários:

[printers]
print ok = yes
guest ok = yes
path = /var/spool/samba
browseable = yes
invalid users = @TI, @DIRETORIA

Ainda podemos fazer combinações. fazendo com que só seja possível imprimir através de um determinado endereço IP e se os usuários estiverem conectados. você pode usar:

[printers]
print ok = yes
guest ok = yes
path = /var/spool/samba
browseable = yes
valid users = marcelo, joão
hosts allow = 192.168.0.2, 192.168.0.3

Você também pode adicionar um número determinado de impressora, e definir regras de acesso diferentes para cada uma. veja o código abaixo:

[Impressora1]
print ok = yes
guest ok = yes
path = /var/spool/samba
browseable = yes
[Impressora2]
print ok = yes
guest ok = yes
path = /var/spool/samba
browseable = yes

Ao invés de "impressora1" e "impressora2", use o nome que você definiu no CUPS. A partir daí, é só usar as regras de acesso, mas separada para cada impressora, como o código abaixo mostra:

[impressora1]
print ok = yes
guest ok = yes
path = /var/spool/samba
browseable = yes
valid users = marcelo, joão
hosts allow = 192.168.0.2, 192.168.0.3
[impressora2]
print ok = yes
guest ok = yes
path = /var/spool/samba
browseable = yes
valid users = @TI, @DIRETORIA

Dica importante: Qualquer dificuldade, recomendo a leitura do manual do CUPS.

Re:Compartilhamento de Impressoras no Samba

Enviado: 28 Jun 2013 13:11
por marcelo0786
No Guia Foca GNU/Linux encontrei alguns comandos que podem ser usados no  compartilhamento de impressora no Samba:

Obs: Espero que gostem...


Será necessário ter o pacote samba instalado e adicionar as seguintes linhas no seu arquivo /etc/samba/smb.conf:

    [hp-printer]
      path = /tmp
      printer name=HP DeskJet 690C
      printable = yes
      print command = lpr -r -h -P %p %s
      valid users = winuser winuser2
      create mode = 0700

O compartilhamento acima tornará disponível a impressora local "lp" as máquinas Windows com o nome "HP DeskJet 690C". Uma impressora alternativa pode ser especificada modificando a opção -P da linha de comando do lpr. Note que somente os usuários "winuser" e "winuser2" poderão usar esta impressora. Os arquivos de spool (para gerenciar a fila de impressão) serão gravador em /tmp (path = /tmp) e o compartilhamento [hp-printer] será mostrado como uma impressora (printable = yes).

Agora será necessário instalar o driver desta impressora no Windows (HP 690C) e escolher impressora instalada via rede e seguir os demais passos de configuração.