Compartilhando a impressora no Samba

Depois de instalar e testar a impressora no servidor, o próximo passo é compartilhá-la através do Samba.

A forma mais simples de fazer isso é adicionar o compartilhamento “[printers]” no arquivo de configuração. Ele é um serviço interno do Samba, similar ao “[homes]”, que permite compartilhar de uma vez todas as impressoras disponíveis no servidor e replica as mudanças na configuração do Cups de forma automática.

O serviço “[printers]” pode ser inclusive usado em conjunto com o “[homes]”, basta adicionar as duas seções no arquivo de configuração. A única observação ao usar os dois em conjunto é que você não pode ter um usuário e uma impressora com o mesmo nome, caso contrário o servidor não conseguirá compartilhar a impressora.

A principal vantagem de usar o “[printers]” é que você não precisa especificar manualmente quais impressoras deseja compartilhar, basta configurar as impressoras no Cups e incluir a seção referente ao compartilhamento no smb.conf:

[printers]comment = Todas as Impressoras
print ok = yes
guest ok = yes
path = /var/spool/samba

Aqui, temos um exemplo de arquivo completo, incluindo o compartilhamento:

[global]netbios name = Hades
workgroup = Grupo
server string = Servidor
encrypt passwords = true
preferred master = yes
os level = 100
preferred master = yes
wins support = yes

printing = cups
load printers = yes
<

[homes]valid users = %S
create mask = 0700
directory mask = 0700
browseable = no

[arquivos]path = /mnt/hda6
writable = no
write list = +arquivos

[printers]comment = Todas as Impressoras
path = /var/spool/samba
print ok = yes
guest ok = yes
browseable = yes

A opção “print ok” é similar à opção “available” que usamos nos compartilhamentos de pastas. Ao usar o “print ok = yes” a impressora fica disponível e, ao usar “print ok = no” o compartilhamento é desativado temporariamente. É obrigatório incluir esta opção no compartilhamento, pois é justamente ela que indica que trata-se de um compartilhamento de impressora.

A opção “guest ok = yes” indica que a impressora deve ficar disponível para o uso de qualquer um. Se preferir que ela fique disponível apenas para os usuários cadastrados no Samba, mude para “guest ok = no”.

A opção “path” indica o diretório do sistema onde serão armazenados os trabalhos de impressão. A pasta “/var/spool/samba” é usada por padrão e deve ter sido criada automaticamente durante a instalação do Samba. De qualquer forma, se mais para a frente você não conseguir imprimir, recebendo mensagens de “disco cheio” ou “acesso negado” a partir dos clientes, verifique se a pasta realmente existe e se as permissões estão corretas:

# ls -l /var/spool/ | grep samba

Ele deve responder algo como:

drwxrwxrwt 2 root root 4096 2008-01-24 15:37 samba

O drwxrwxrwt indica as permissões da pasta, no caso uma pasta pública onde todos os usuários podem ler e gravar arquivos. O último “t” indica o uso do sticky bit, uma precaução de segurança, que faz com que cada usuário possa alterar apenas seus próprios arquivos. Isso evita que algum engraçadinho consiga corromper trabalhos de impressão enviados por outros usuários.

Se você precisar criar manualmente a pasta, o comando para setar as permissões corretamente é:

# chmod 1777 /var/spool/samba/

(note o uso do “1”, que ativa o stick bit)

Continuando, depois de reiniciar o Samba, ou aguardar o tempo de atualização, as impressoras passarão a aparecer no ambiente de redes, com os mesmos nomes que foram definidos ao instalar as impressoras no servidor.

O Samba pode inclusive ser usado para centralizar as impressoras da rede, recompartilhando impressoras disponibilizadas por outros micros, desde que você as configure corretamente no Cups. Nesse screenshot, por exemplo, temos duas impressoras. A “E230” está instalada diretamente no servidor, enquanto a “Optra-E+” é uma impressora disponibilizada por outro micro. Como pode ver, o cliente pode visualizar e imprimir em ambas:

m3c79ac3c

É possível, também, especificar individualmente o compartilhamento de cada impressora, o que é útil quando o servidor compartilha várias impressoras diferentes e você precisa especificar as permissões individualmente. A configuração a adicionar no arquivo de configuração é praticamente a mesma. A principal diferença é que agora você deve especificar o nome da impressora no nome do compartilhamento, ao invés de usar a string “printers”, como em:

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

Assim como no caso dos compartilhamentos de arquivos, você pode limitar o acesso à impressora com base nos endereços IP ou nos nomes das máquinas, com base nos logins de usuário, ou através de uma combinação de ambos, através das opções “hosts allow”, “hosts deny”, “valid users” e “invalid users”. Estas opções podem ser usadas tanto ao ativar o serviço [printers]quanto ao compartilhar as impressoras individualmente.

Para permitir que a impressora seja usada por apenas alguns endereços específicos, você usaria:

[E230] print ok = yes
guest ok = yes
path = /var/spool/samba
hosts allow = 192.168.1.3, 192.168.1.4, 192.168.1.65

Você pode, também, usar os nomes das máquinas dentro da rede Windows no lugar dos endereços IP, como em:

[E230] print ok = yes
guest ok = yes
path = /var/spool/samba
hosts allow = micro1, micro2, micro3

Para bloquear o acesso à impressora para os usuários “joao” e “maria”, utilizaríamos a opção “invalid users”, assim como em um compartilhamento de arquivos:

[E230] print ok = yes
guest ok = no
path = /var/spool/samba
invalid users = joao, maria

Similarmente, para inverter a lógica, permitindo que apenas os dois usem a impressora, usaríamos a opção “valid users”:

[E230] print ok = yes
guest ok = no
path = /var/spool/samba
valid users = joao, maria

Para combinar as duas coisas, permitindo que a impressora seja usada apenas pelos dois usuários e, além disso, apenas a partir de dois endereços específicos, você usaria:

[E230] print ok = yes
guest ok = no
path = /var/spool/samba
valid users = joao, maria
hosts allow = 192.168.1.3, 192.168.1.4

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X