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.

[ Hits: 10.168 ]

Por: Ricardo Xerfan em 11/12/2018


Instalar e realizar a configuração básica do PostgreSQL



Instalar o PostgreSQL:

# pkg install postgresql95-server-9.5.14 postgresql95-client-9.5.14

Adicionar a seguinte linha ao arquivo /etc/rc.conf:

postgresql_enable="YES"

Iniciar o PostgreSQL:

# service postgresql initdb

The files belonging to this database system will be owned by user "pgsql".
This user must also own the server process.

The database cluster will be initialized with locale "C".
The default text search configuration will be set to "english".

Data page checksums are disabled.

creating directory /usr/local/pgsql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
creating template1 database in /usr/local/pgsql/data/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating collations ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
loading PL/pgSQL server-side language ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok
syncing data to disk ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

        /usr/local/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start


Alterar e descomentar as linhas "#listen_addresses = 'localhost'" e "#port = 5432" no arquivo "postgresql.conf":

# ee /usr/local/pgsql/data/postgresql.conf

listen_addresses = 'IP_DO_SERVIDOR' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
port = 5432 # (change requires restart)

ATENÇÃO: o PostgreSQL ainda não está sendo executado, para ter certeza utilize o comando "sockstat":

# sockstat -4l
USER   COMMAND   PID   FD PROTO  LOCAL ADDRESS    FOREIGN ADDRESS
root   sendmail  589   3   tcp4  127.0.0.1:25     *:*
root   cupsd     574   6   tcp4  *:631            *:*
root   sshd      565   4   tcp4  *:22             *:*
root   ntpd      527   21  udp4  *:123            *:*
root   ntpd      527   22  udp4  IP:123  	  *:*
root   ntpd      527   25  udp4  127.0.0.1:123    *:*
root   snmpd     499   8   udp4  *:161            *:*
root   snmpd     499   9   tcp4  *:199            *:*
_tss   tcsd_emu  452   4   tcp4  127.0.0.1:30003  *:*
root   syslogd   430   7   udp4  *:514 

Iniciar o serviço do PostgreSQL:

# service postgresql start

Agora já está sendo executado, para ter certeza utilize novamente o "sockstat":

# sockstat -4l
USER    COMMAND    PID   FD PROTO  LOCAL ADDRESS    FOREIGN ADDRESS
pgsql   postgres   811   3  tcp4   IP:5432          *:*
root    sendmail   589   3  tcp4   127.0.0.1:25     *:*
root    cupsd      574   6  tcp4   *:631            *:*
root    sshd       565   4  tcp4   *:22             *:*
root    ntpd       527   21 udp4   *:123            *:*
root    ntpd       527   22 udp4   IP:123    	    *:*
root    ntpd       527   25 udp4   127.0.0.1:123    *:*
root    snmpd      499   8  udp4   *:161            *:*
root    snmpd      499   9  tcp4   *:199            *:*
_tss    tcsd_emu   452   4  tcp4   127.0.0.1:30003  *:*
root    syslogd    430   7  udp4   *:514            *:*

Alterar a senha do "pgsql":

# passwd pgsql

Fazer teste no PostgreSQL:

Entrar com usuário "pgsql":

# su pgsql

Criar usuário de teste no PostgreSQL:

createuser -sdrP suporte

Criar DB de teste:

createdb -O suporte dbteste

Testes restantes:

pgsql dbteste

dbteste=# \list

View do teste:

# su pgsql
createuser -sdrP suporte
Enter password for new role:
Enter it again:

createdb -O suporte dbteste
$ psql dbteste
psql (9.5.14)
Type "help" for help.

dbteste=# \list
List of databases
Name    |  Owner  | Encoding | Collate | Ctype | Access privileges
-----------+---------+----------+---------+-------+-------------------
dbteste   | suporte | UTF8     | C       | C     |
postgres  | pgsql   | UTF8     | C       | C     |
template0 | pgsql   | UTF8     | C       | C     | =c/pgsql         +
|         |          |         |       | pgsql=CTc/pgsql
template1 | pgsql   | UTF8     | C       | C     | =c/pgsql         +
|         |          |         |       | pgsql=CTc/pgsql
(4 rows)

dbteste=#

Sair do teste feito:

dbteste=# \q
exit

Editar o arquivo "pg_hba.conf":

# ee /usr/local/pgsql/data/pg_hba.conf

Adicionar a linha:

"host    all     all     IP/Máscara    trust"

# IPv4 local connections:
host    all             all             127.0.0.1/32    trust
host    all             all             IP/24           trust

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalar e configurar o CUPS
   3. Instalar e realizar a configuração básica do PostgreSQL
   4. Instalar e realizar a configuração básica do PyKota
Outros artigos deste autor

Configurando o FreeBSD e PyKota para receber o JPyKotaGUI

Leitura recomendada

Configurando rede wireless com wpa_supplicant

Introdução ao FreeBSD

Instalação de Aplicativos no FreeBSD

Fingerprint: Conhecimento TCP

Introdução ao PC-BSD

  
Comentários
[1] Comentário enviado por xerxeslins em 12/12/2018 - 15:33h

Artigo gigante! Bem, vou favoritar, para consultar um dia quando for usar FreeBSD. ;-]

--
"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

[2] Comentário enviado por pbonfanti em 04/01/2019 - 08:13h

Excelente artigo, pretendo testar o sistema ,mas acho importante informar logo no início do artigo com qual Release do FreeBSD você testou.
Na linha Logo abaixo "Testes restantes", após instalar o postgresql, o comando
$ pgsql dbteste
Retorna comando não encontrado, mas responde a:
$ psql dbteste
dbteste# \list

[3] Comentário enviado por ricardo-xerfan em 07/01/2019 - 23:05h


[1] Comentário enviado por xerxeslins em 12/12/2018 - 15:33h

Artigo gigante! Bem, vou favoritar, para consultar um dia quando for usar FreeBSD. ;-]

--
"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



Tamo junto meu nobre!!

[4] Comentário enviado por ricardo-xerfan em 07/01/2019 - 23:20h


[2] Comentário enviado por pbonfanti em 04/01/2019 - 08:13h

Excelente artigo, pretendo testar o sistema ,mas acho importante informar logo no início do artigo com qual Release do FreeBSD você testou.
Na linha Logo abaixo "Testes restantes", após instalar o postgresql, o comando
$ pgsql dbteste
Retorna comando não encontrado, mas responde a:
$ psql dbteste
dbteste# \list


Fale meu nobre!!

Obrigado pelo retorno!! O comando certo é "psql dbteste".

Percebi, também, que após a publicação, não ficou boa a "identação" deste exemplo do código no arquivo "usr/local/lib/python2.7/site-packages/pykota/storages/pgstorage.py " na linha 149:

return self.database.adapter.adapt_inline(field)

Então, pode ser que apresente erro de "identação". Caso ocorra, basta "identar" o código de acordo com as outras linhas do bloco em questão.

Qualquer dúvida ou observação, basta chamar!

Grande abraço!

[5] Comentário enviado por ricardo-xerfan em 10/01/2019 - 11:41h

Comentários relevantes ao tutorial: LEIA COM ATENÇÃO:

Para adicionar impressoras em compartilhamentos Windows, vc pode fazer da seguinte forma:

01. Configurar, no servidor onde está o CUPS, o arquivo "smb4.conf" (/usr/local/etc/smb4.conf) de acordo com seu ambiente;

02. Adicionar a impressora com a opção "PyKota managed Windows Printer via SAMBA (PyKota+Unknown)";

03. Configurar a conexão da seguinte forma:

cupspykota:smb://username:password@domain/hostname_or_IP/printer_name

Exemplo:

cupspykota:smb://ricardo:12345@dominio.local/192.168.1.5/Lexmark%20PROTOCOLO

OBS.: Se o nome da impressora contiver espaço, no lugar do espaço, coloque "%20" (sem aspas). Exemplo:

Nome real da impressora: Lexmark PROTOCOLO

Como deve ser colocado na conexão: Lexmark%20PROTOCOLO

ATENÇÃO: Por padrão o CUPS não permite que os usuários remotos façam requisições de impressões ou gerenciamento nas impressoras que estão configuradas nele. Portanto, para que qualquer usuário remoto, "dentro de sua rede", consiga realizar tais tarefas, é necessário que vc habilite isso no CUPS através de linha de comando. Basta digitar no terminal o seguinte:

cupsctl --share-printers

OBS.1: Se vc não fizer o comando acima, os usuários remotos não vão conseguir fazer nada na impressora.
OBS.2: Para que vc possa instalar a impressora em um host de sua rede, é necessário ter privilégios administrativos. Basta adicionar a impressora com uma conta de administrador que os outros usuários terão acesso a mesma.
OBS.3: Para adicionar a impressora a um host Windows, faça da seguinte forma:
OBS.3.1: Abrir o frontend de gerenciamento do CUPS;
OBS.3.2: Ir no menu impressoras;
OBS.3.3: Selecionar, da sua lista de impressoras que já foram adicionadas ao CUPS, a impressora que vc deseja;
OBS.3.4: Copiar a URL da impressora. Exemplo:
https://IP-Servidor-CUPS:631/printers/Printer-PROTOCOLO01
OBS.3.5: Ir no painel de controle do Windows, em "Dispositivos e Impressoras" e depois em "Adicionar uma impressora". Clicar em "A impressora que eu quero não está na lista". Na tela que vai abrir, selecionar a opção "Selecionar uma impressora compartilhada pelo nome". Colar no espaço indicado a URL que foi copiada. Depois clicar em "Avançar" e proceder normalmente com as outras opções. Lembrando mais uma vez que É NECESSÁRIO TER PRIVILÉGIOS ADMINISTRATIVOS para adicionar a impressora no host Windows;
OBS.3.6: Não esquecer de configurar as permissões dentro do PyKota em linha de comando (adicionar impressora, usuário e atrelar a impressora ao usuário), como foi mostrado no tutorial.

Grande abraço!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts