Compartilhamento de Impressoras no Samba
Enviado: 28 Jun 2013 00:37
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.
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.