Servidor de impressão com cotas no FreeBSD (CUPS + PostgreSQL + PyKota)
Tutorial completo de como configurar um servidor de impressão com cotas no FreeBSD. Abordaremos a instalação e configuração do CUPS, PostgreSQL e PyKota.
Parte 2: Instalar e configurar o CUPS
Atualizar o pkg:
# pkg update
Instalar CUPS, filtros, backends e drivers:
# pkg install cups-2.2.8_1 cups-filters-1.16.0_6 cups-smb-backend-1.0_11 cups-pk-helper-0.2.6 cups-pdf-2.6.1_4 hplip-3.17.11 foomatic-db-hpijs-1.4
Obs.: irá solicitar a instalação de outras dependências, basta confirmar:
# pkg install cups-2.2.8_1 cups-filters-1.16.0_6 cups-smb-backend-1.0_11 cups-pk-helper-0.2.6 cups-pdf-2.6.1_4 hplip-3.17.11 foomatic-db-hpijs-1.4
Obs.: algumas dessas linhas não são necessárias para o ambiente em questão.
Editar o arquivo /usr/local/etc/cups/cupsd.conf.
# ee /usr/local/etc/cups/cupsd.conf
Obs.: ATENÇÃO para a linha "Allow All", a mesma libera acesso para todos os endereços IPs de todas as redes e subredes. Configurar de acordo com a rede a ser utilizada.
Liberar o acesso ao cups:
Listen localhost:631
alterar para:
ou:
Liberar o acesso ao frontend do CUPS:
Basta adicionar a linha "Allow All" (sem aspas) dentro da seção "<Location /> </Location>", após a diretiva "Order allow,deny":
Liberar o acesso à página de administração do frontend do CUPS:
Basta adicionar a linha "Allow All" (sem aspas) dentro da seção "<Location /admin> </Location>", após a diretiva "Order allow,deny":
Liberar o acesso à página de configuração do frontend do CUPS:
Basta adicionar a linha "Allow All" (sem aspas) dentro da seção "<Location /admin/conf> </Location>", após a diretiva "Order allow,deny":
Liberar o acesso à página de logs do frontend do CUPS:
Basta adicionar a linha "Allow All" (sem aspas) dentro da seção "<Location /admin/log> </Location>", após a diretiva "Order allow,deny":
Liberar a visualização de impressão por nome de usuário dentro do CUPS:
Adicionar a cláusula "none" sem aspas dentro da seção "<Policy default> </Policy>" na mesma linha e logo em seguida da diretiva "JobPrivateValues default" e comentar a cláusula "default":
Reiniciar o daemon do CUPS:
# /usr/local/etc/rc.d/cupsd restart
ou
# service cupsd restart
Adicionar uma impressora para testes dentro do frontend do CUPS:
Página de Administração/ Adicionar impressora/
Escolha o backend que for de sua preferência, pode ser o:
AppSocket/HP JetDirect
Para este tutorial foi utilizado o backend citado acima.
No campo "Conexão" coloque a cláusula "socket" seguida de "://", depois o IP da impressora e a porta padrão do CUPS "9100":
socket://IP.da.Impressora:9100
Clique no botão "Continuar".
Na próxima página:
Adicione o nome, descrição e localização da impressora e marque a caixa de seleção "Compartilhar essa impressora", depois clique no botão "Continue".
Na próxima página:
Clique sobre o nome da fabricante da impressora escolhida, clique no botão "Continuar".
Na próxima página:
Escolha o driver de acordo com o modelo da impressora escolhida e clique no botão "Adicionar impressora".
Na próxima página (definir opções de impressora):
Defina as opções padrões (General, Banners e Políticas) para a impressora e clique no botão "Definir opções padrão".
Pronto! A impressora irá aparecer instalada e informará o status da mesma (ociosa, aceitando trabalhos, compartilhada) no menu "Impressoras". Basta agora imprimir uma página de testes:
Clique no menu suspenso escrito "Manutenção" e depois selecione a opção "Imprimir página de teste".
ATENÇÃO: no frontend do CUPS deverá aparecer uma página informando o nome de usuário que fez a impressão:
Clique no menu impressoras, depois na impressora que você instalou e configurou e então clique em "Mostrar todos os trabalhos". Vai aparecer algo parecido com:
ID
Nome
Usuário
Tamanho
Páginas
Estado
Controle
...
# pkg update
Instalar CUPS, filtros, backends e drivers:
# pkg install cups-2.2.8_1 cups-filters-1.16.0_6 cups-smb-backend-1.0_11 cups-pk-helper-0.2.6 cups-pdf-2.6.1_4 hplip-3.17.11 foomatic-db-hpijs-1.4
Obs.: irá solicitar a instalação de outras dependências, basta confirmar:
# pkg install cups-2.2.8_1 cups-filters-1.16.0_6 cups-smb-backend-1.0_11 cups-pk-helper-0.2.6 cups-pdf-2.6.1_4 hplip-3.17.11 foomatic-db-hpijs-1.4
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Updating database digests format: 100%
The following 161 package(s) will be affected (of 0 checked):
New packages to be INSTALLED:
cups: 2.2.8_1
cups-filters: 1.16.0_6
cups-smb-backend: 1.0_11
cups-pk-helper: 0.2.6
cups-pdf: 2.6.1_4
hplip: 3.17.11
foomatic-db-hpijs: 1.4
gnutls: 3.5.19
trousers: 0.3.14_2
tpm-emulator: 0.7.4_2
gmp: 6.1.2
indexinfo: 0.3.1
p11-kit: 0.23.14
libtasn1: 4.13
ca_root_nss: 3.40
libffi: 3.2.1_2
nettle: 3.4
libidn2: 2.0.5
libunistring: 0.9.10
gettext-runtime: 0.19.8.1_1
libpaper: 1.1.24.4
avahi-app: 0.7_1
expat: 2.2.6_1
gnome_subr: 1.0
libdaemon: 0.14_1
gobject-introspection: 1.56.1,1
python36: 3.6.6_1
readline: 7.0.3_1
glib: 2.56.1_2,1
python27: 2.7.15
perl5: 5.26.2
pcre: 8.42
libiconv: 1.14_11
dbus-glib: 0.108
dbus: 1.10.16_1
libX11: 1.6.6_1,1
libxcb: 1.13.1
libXdmcp: 1.1.2_2
xorgproto: 2018.4
libXau: 1.0.8_5
libxml2: 2.9.7
libpthread-stubs: 0.4
libSM: 1.2.2_5,1
libICE: 1.0.9_3,1
gdbm: 1.13_1
fontconfig: 2.12.6,1
freetype2: 2.9.1
qpdf: 8.2.1
jpeg-turbo: 2.0.0
png: 1.6.35
libijs: 0.35_5
ghostscript9-agpl-base: 9.25_1
tiff: 4.0.9_1
jbigkit: 2.1_1
poppler-data: 0.4.9
openjpeg: 2.3.0_2
lcms2: 2.9
jbig2dec: 0.15
libidn: 1.34
poppler-utils: 0.57.0_1
nss: 3.40
nspr: 4.20
sqlite3: 3.25.1
poppler-glib: 0.57.0_1
poppler: 0.57.0_1
cairo: 1.15.12,2
xcb-util-renderutil: 0.3.9_1
xcb-util: 0.4.0_2,1
pixman: 0.34.0
libXrender: 0.9.10_2
libXext: 1.3.3_3,1
mesa-libs: 18.1.9
libxshmfence: 1.2_4
libXxf86vm: 1.1.4_3
libXfixes: 5.0.3_2
libXdamage: 1.1.4_5
libdrm: 2.4.93,1
libpciaccess: 0.13.5
pciids: 20180921
libunwind: 20170615
libfontenc: 1.1.3_3
font-util: 1.3.1
pcre2: 10.31
colord: 1.3.5
polkit: 0.114_1
spidermonkey52: 52.8.0_1
icu: 62.1_2,1
argyllcms: 1.9.2_3
libXrandr: 1.5.1_2
libXinerama: 1.1.4_2,1
libXScrnSaver: 1.2.3_2
samba47: 4.7.10_1
libsunacl: 1.0.1
cmocka: 1.1.1_1
openldap-client: 2.4.46
py27-dnspython: 1.15.0
py27-setuptools: 40.0.0
tevent: 0.9.37
talloc: 2.1.14
py27-iso8601: 0.1.11
popt: 1.16_2
libinotify: 20180201
jansson: 2.11
gamin: 0.1.10_9
tdb: 1.3.16,1
libarchive: 3.3.2_1,1
lzo2: 2.10_1
liblz4: 1.8.3,1
py27-qt5-widgets: 5.9.2_5
qt5-widgets: 5.11.2
qt5-gui: 5.11.2
xcb-util-wm: 0.4.1_3
xcb-util-keysyms: 0.4.0_1
xcb-util-image: 0.4.0_1
libxkbcommon: 0.8.0
libXi: 1.7.9_2,1
xorg-fonts-truetype: 7.7_1
font-misc-meltho: 1.0.3_3
mkfontscale: 1.1.3_2
mkfontdir: 1.0.7
font-misc-ethiopic: 1.0.3_3
font-bh-ttf: 1.0.3_3
encodings: 1.0.4_4,1
dejavu: 2.37
harfbuzz: 1.9.0
graphite2: 1.3.12
qt5-network: 5.11.2
qtchooser: 39
qt5-core: 5.11.2
xdg-utils: 1.1.1
xset: 1.2.4_2
libXmu: 1.1.2_5,1
libXt: 1.1.5_2,1
libXfontcache: 1.0.5_5
xprop: 1.2.3
hicolor-icon-theme: 0.15
qt5-dbus: 5.11.2
py27-qt5-gui: 5.9.2_2
qt5-imageformats: 5.11.2
webp: 1.0.0_1
giflib: 5.1.4
libmng: 1.0.10_3
lcms: 1.19_6,1
jasper: 1.900.1_17
py27-qt5-core: 5.9.2_6
qscintilla2-qt5: 2.10.4
qt5-printsupport: 5.11.2
net-snmp: 5.7.3_18
sane-backends: 1.0.27_4
py27-pillow: 5.2.0
tk86: 8.6.8_2
libXft: 2.3.2_3
tcl86: 8.6.8
py27-tkinter: 2.7.15_6
py27-sip: 4.19.8,1
py27-qt5-dbussupport: 5.9.2_1
py27-dbus: 1.2.0_1
pydbus-common: 1.2.0_2
py27-gobject: 2.28.6_8
py27-cairo: 1.14.1
foomatic-db: 20180926
Number of packages to be installed: 161
The process will require 1 GiB more space.
236 MiB to be downloaded.
Proceed with this action? [y/N]:
A instalação pede para adicionar as linhas abaixo ao arquivo /etc/rc.conf, faça isso:
cupsd_enable="YES"
devfs_system_ruleset="system"
tcsd_enable="YES"
tcsd_mode="emulator"
tpmd_enable="YES"
snmpd_enable="YES"
#snmpd_flags="-a"
#snmpd_conffile="/usr/local/share/snmp/snmpd.conf /etc/snmpd.conf"
#snmptrapd_enable="YES"
#snmptrapd_flags="-a -p /var/run/snmptrapd.pid"
devfs_system_ruleset="system"
tcsd_enable="YES"
tcsd_mode="emulator"
tpmd_enable="YES"
snmpd_enable="YES"
#snmpd_flags="-a"
#snmpd_conffile="/usr/local/share/snmp/snmpd.conf /etc/snmpd.conf"
#snmptrapd_enable="YES"
#snmptrapd_flags="-a -p /var/run/snmptrapd.pid"
Obs.: algumas dessas linhas não são necessárias para o ambiente em questão.
Editar o arquivo /usr/local/etc/cups/cupsd.conf.
# ee /usr/local/etc/cups/cupsd.conf
Obs.: ATENÇÃO para a linha "Allow All", a mesma libera acesso para todos os endereços IPs de todas as redes e subredes. Configurar de acordo com a rede a ser utilizada.
Liberar o acesso ao cups:
Listen localhost:631
alterar para:
Listen 631
ou:
Port 631
Liberar o acesso ao frontend do CUPS:
Basta adicionar a linha "Allow All" (sem aspas) dentro da seção "<Location /> </Location>", após a diretiva "Order allow,deny":
# Restrict access to the server...
<Location />
Order allow,deny
Allow All
</Location>
<Location />
Order allow,deny
Allow All
</Location>
Liberar o acesso à página de administração do frontend do CUPS:
Basta adicionar a linha "Allow All" (sem aspas) dentro da seção "<Location /admin> </Location>", após a diretiva "Order allow,deny":
# Restrict access to the admin pages...
<Location /admin>
Order allow,deny
Allow All
</Location>
<Location /admin>
Order allow,deny
Allow All
</Location>
Liberar o acesso à página de configuração do frontend do CUPS:
Basta adicionar a linha "Allow All" (sem aspas) dentro da seção "<Location /admin/conf> </Location>", após a diretiva "Order allow,deny":
# Restrict access to configuration files...
<Location /admin/conf>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow All
</Location>
<Location /admin/conf>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow All
</Location>
Liberar o acesso à página de logs do frontend do CUPS:
Basta adicionar a linha "Allow All" (sem aspas) dentro da seção "<Location /admin/log> </Location>", após a diretiva "Order allow,deny":
# Restrict access to log files...
<Location /admin/log>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow All
</Location>
<Location /admin/log>
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow All
</Location>
Liberar a visualização de impressão por nome de usuário dentro do CUPS:
Adicionar a cláusula "none" sem aspas dentro da seção "<Policy default> </Policy>" na mesma linha e logo em seguida da diretiva "JobPrivateValues default" e comentar a cláusula "default":
# Set the default printer/job policies...
<Policy default>
# Job/subscription privacy...
JobPrivateAccess default
JobPrivateValues none #default
SubscriptionPrivateAccess default
SubscriptionPrivateValues default
...
</Policy>
<Policy default>
# Job/subscription privacy...
JobPrivateAccess default
JobPrivateValues none #default
SubscriptionPrivateAccess default
SubscriptionPrivateValues default
...
</Policy>
Reiniciar o daemon do CUPS:
# /usr/local/etc/rc.d/cupsd restart
ou
# service cupsd restart
Adicionar uma impressora para testes dentro do frontend do CUPS:
Página de Administração/ Adicionar impressora/
Escolha o backend que for de sua preferência, pode ser o:
AppSocket/HP JetDirect
Para este tutorial foi utilizado o backend citado acima.
No campo "Conexão" coloque a cláusula "socket" seguida de "://", depois o IP da impressora e a porta padrão do CUPS "9100":
socket://IP.da.Impressora:9100
Clique no botão "Continuar".
Na próxima página:
Adicione o nome, descrição e localização da impressora e marque a caixa de seleção "Compartilhar essa impressora", depois clique no botão "Continue".
Na próxima página:
Clique sobre o nome da fabricante da impressora escolhida, clique no botão "Continuar".
Na próxima página:
Escolha o driver de acordo com o modelo da impressora escolhida e clique no botão "Adicionar impressora".
Na próxima página (definir opções de impressora):
Defina as opções padrões (General, Banners e Políticas) para a impressora e clique no botão "Definir opções padrão".
Pronto! A impressora irá aparecer instalada e informará o status da mesma (ociosa, aceitando trabalhos, compartilhada) no menu "Impressoras". Basta agora imprimir uma página de testes:
Clique no menu suspenso escrito "Manutenção" e depois selecione a opção "Imprimir página de teste".
ATENÇÃO: no frontend do CUPS deverá aparecer uma página informando o nome de usuário que fez a impressão:
Clique no menu impressoras, depois na impressora que você instalou e configurou e então clique em "Mostrar todos os trabalhos". Vai aparecer algo parecido com:
ID
Nome
Usuário
Tamanho
Páginas
Estado
Controle
...
--
"There are lots of Linux users who don't care how the kernel works, but only want to use it. That is a tribute to how good Linux is." - Linus Torvalds