Postfix e capacidade das caixas de correio

A minha caixa de correio encheu, e comecei a receber as seguintes mensagens, no ficheiro maillog:

error writing message: File too large

A solução é alterar o parâmetro do Postix virtual_mailbox_limit para o valor 0.
Por omissão, esse parâmetro tem o valor 51200000 (50MB).
Eis os comandos:

Para verificar o valor de um parâmetro:

postconf virtual_mailbox_limit

Para alterar o valor de um parâmetro:

postconf -e "virtual_mailbox_limit = 0"

Para reiniciar o Postfix:

postfix reload

Alterei também o parâmetro mailbox_size_limit para 0.
Mas desta vez fui ao ficheiro de configuração /etc/postfix/main.cf e adicionei a linha seguinte no fim:

mailbox_size_limit = 0

Depois reiniciei o Postfix.

Cores no BASH

Detesto cores no BASH.

Não consigo ver cores escuras sobre preto, e para mim é contraproducente ter cores no BASH.
No BASH, no VI, e em qualquer aplicação de fundo preto (principalmente) ou até branco.

Há anos que ando a tentar, com mais ou menos sucesso, fazer desaparecer esta chaga das minhas máquinas.
Parece que desta vez consegui, com a ajuda deste site: Turn off color in Linux terminal/bash session

Comandos importantes:

echo "$TERM"
export TERM=xterm-mono
echo "$TERM"
echo 'export TERM=xterm-mono' >> ~/.bashrc
vi ~/.bashrc 
# E aqui, comentar tudo o que tem "--color=auto"
# E confirmar que a linha seguinte está comentada
# force_color_prompt=yes
# Depois, sair e executar:
source ~/.bashrc
source ~/.bash_aliases 

Sair do terminal, e abrir outra vez. Et voilà.

Adicionar utilizador no MySQL

Nas últimas versões do MySQL, por questões de segurança, já não é possível adicionar utilizadores diretamente na tabela user na base de dados mysql.

Agora é necessário usar comandos para isso. Eis os comandos mais simples para permitir o acesso de novos utilizadores a uma base de dados:

CREATE USER IF NOT EXISTS 'root'@'ip_da_máquina' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'ip_da_máquina';
FLUSH PRIVILEGES;

Xfce pendura

O Xfce começou a pendurar, deixava de responder ao rato e teclado, e a minha primeira reação foi passar a trabalhar apenas em consola.

Hoje, pendurou outra vez, e não me apeteceu deitar a máquina abaixo (porque nunca o conseguia fazer voltar a responder), e fui à procura do problema.

O problema era que o Xfce lançava um screensaver inexistente, que, por ser inexistente, não tinha interface para perceber que o rato mexia, ou que o teclado tinha sido atuado.

Descobri que o problema era o screensaver no ficheiro de logs: ~/.xsession-errors.

Numa janela de consola remota, com o comando ps aux |grep xfce, encontrei o screensaver e matei-o:

ps aux |grep xfce
root      6778  0.0  0.0 188648 24396 ?        Sl   06:51   0:00 /usr/bin/xfce4-screensaver
kill 6778

Depois desativei o screensaver, para não arrancar mais, no menu:
Applications – Settings – xfce4-screensaver.

Mais tarde, uns tempos depois, selecionei um screensaver disponível, e deixei de ter problemas.

ISO num dispositivo USB

Eis o comando para coloca rum ficheiro ISO num dispositivo USB, por exemplo uma pendrive para arrancar com um sistema operativo qualquer:

dd bs=4M if=ubuntu-20.04-desktop-amd64.iso of=/dev/sde

Precisei disto apra arrancar com o Ubuntu – esse sistema famigerado – e tentar repôr o grub, após uma instalação nova. Coisas que nunca me aconteceram com o Slackware.

Let’s Encrypt

Eis como usar o Let’s Encrypt no Slackware!

==========================================
DEHYDRATED – configuração
==========================================

# Local dos ficheiros de configuração
/etc/dehydrated/

# Configuração base – não alterar
/etc/dehydrated/config

# Indicar quais os domínios em SSL. Alias na mesma linha. Domínios diferentes em linhas separadas.
/etc/dehydrated/domains.txt

Exemplo:
dominio.pt    www.dominio.pt
exemplo.pt

==========================================
WELLKNOWN
==========================================

######## ATENÇÃO ########
#
# a configuração seguinte tem que ser feita em http, mas pode ser redirecionada para https

# Criar um ficheiro com o nome abaixo, e colocar lá uma linha vazia
vi /var/www/dehydrated/m4g1C-t0k3n

# No ficheiro /etc/httpd/httpd.conf colocar as linhas abaixo, na zona das parametrização de diretorias
# Colocar também no /etc/httpd/extra/httpd-ssl.conf
# e eventualmente nos VHosts todos: /etc/httpd/extra/httpd-vhosts.conf

#
# Configuracao para o dehydrated
# ver: https://github.com/dehydrated-io/dehydrated/blob/master/docs/wellknown.md
Alias /.well-known/acme-challenge /var/www/dehydrated
<Directory /var/www/dehydrated>
Options None
AllowOverride None

<IfModule mod_authz_core.c>
Require all granted
</IfModule>
</Directory>
# Fim do dehydrated
#

# Reiniciar o apache
apachectl restart

# Neste momento, o endereço seguinte tem que existir e mostrar uma página em branco:
http://DOMINIO/.well-known/acme-challenge/m4g1C-t0k3n

==========================================
Criar os certificados
==========================================

# É necessário aceitar os termos de utilização, uma única vez:
dehydrated –register –accept-terms

# Depois, criar os certificados
dehydrated -c

==========================================
Redirecionar http para https
==========================================

# Os redirecionamentos de http para https, por cada domínio https, têm que ser feitos da forma seguinte, para manter o URL no redirecionamento:
# Isto é para colocar nos VHosts de http (/etc/httpd/extra/httpd-vhosts.conf)
######## ATENÇÃO ########
# Isto só pode ser feito depois de criar os certificados, por causa do acesso ao ficheiro “m4g1C-t0k3n” em http

# As linhas seguintes foram retiradas de:
# “Redirect from http to https in apache showing original url with arguments”
# https://stackoverflow.com/questions/27824676/redirect-from-http-to-https-in-apache-showing-original-url-with-arguments
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]

==========================================
Configurar o Apache
==========================================

SSLCertificateFile “/etc/dehydrated/certs/DOMINIO/cert.pem”
SSLCertificateKeyFile “/etc/dehydrated/certs/DOMINIO/privkey.pem”
SSLCertificateChainFile “/etc/dehydrated/certs/DOMINIO/chain.pem”

# Reiniciar o apache
apachectl restart

==========================================
Renovação dos certificados
==========================================

Devia ser automático, mas ainda não sei como fazer isso.
Quando os certificados expiram, ou uns dias antes de expirarem, na maior parte das vezes, basta executar os comandos seguintes:

dehydrated -c
apachectl restart

Se der o erro seguinte, é necessário executar os passos abaixo.

ERROR: Challenge is invalid! (returned: invalid) (result: [“type”] “http-01”

Os passos são:
– No ficheiro /etc/httpd/extra/httpd-vhosts.conf, criar a variável seguro: Define seguro true e no final do ficheiro, eliminá-la: UnDefine seguro
– Envolver as linhas do RewriteEngine com um If:

<If "'${seguro}' == 'true'">
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]
</If>

Temporariamente, fazer Define seguro false, reiniciar o Apache e correr o comando

dehydrated -c

Depois, voltar a colocar Define seguro true, e reiniciar o Apache.

Resumindo:

vi /etc/httpd/extra/httpd-vhosts.conf
--> Define seguro false
apachectl restart
dehydrated -c
vi /etc/httpd/extra/httpd-vhosts.conf
--> Define seguro true
apachectl restart

Mais sobre o vi

No artigo Cores no vi, indico que, para remover as cores, basta criar ou editar o ficheiro de configuração do vi ~/.vimrc, colocar a linha syntax off.

Mas há mais funcionalidades que podem ter que ser alteradas, a partir desse ficheiro de configuração.

Nas novas instalações do Slackware, podemos escolher entre duas versões que suportam UTF-8: o nvi (BSD) e o vim (improved).

Com o nvi, já tive problemas ao usar as setas do cursor, em modo de edição. Por outro lado, o vim tem uns modos estranhos, relacionados com o rato, que não me servem (Visual, Insert, etc.). Apesar de tudo, prefiro o vim, pois nunca me causou problemas com o uso das setas do cursor.

Por omissão, o vim tem o rato no modo a, que não tem, entre outras coisas, a possibilidade de fazer copy+paste com o rato, da mesma forma que o faço em linha de comando, não permitindo que eu copie texto de uma janela de consola para outra.

Para obter este funcionamento, com o vim, é necessário colocar no ficheiro ~/.vimrc uma linha adicional: set mouse=r.

Nota: para ligar o vi ao vim, ou ao nvi usar um dos comandos seguintes

ln -sf /usr/bin/vim /usr/bin/vi
ln -sf /usr/bin/nvi /usr/bin/vi

Instalação incoerente

Uma das minhas máquinas estava com um comportamento estranho, desde a última atualização. Detetei dois problemas, mas, provavelmente, haveria mais:

  • O relógio estava extremamente lento: cada segundo demorava 25 segundos
  • O servidor de imap recusava ligações

Para testar o servidor de imap, usei o comando seguinte, na própria máquina (ver Testing the IMAP Server):

telnet localhost imap

Na resposta, a máquina disse que não encontrava a biblioteca libcrypto.so.1.
Pesquisei noutra máquina e vi que este nome é um link simbólico para libcrypto.so.1.0.0.
Criei o link à mão e o telnet passou a queixar-se de outra biblioteca.

Decidi, então, reparar a instalação. Para isso, usei o comando:

slackpkg reinstall slackware64

que reinstala todos os pacotes que estão atualmente na máquina.

Samba e passwords

Isto já me aconteceu várias vezes. No total, já perdi talvez uma dúzia de horas até descobrir a solução.

Instalo o Samba numa máquina Linux nova, e depois, quando tento aceder a partir do Windows, ele pede-me autenticação.

O que é que está errado?

De todas as vezes, o que me esqueci foi de vriar uma password na máquina Linuxa para o utilizador do Samba:

smbpasswd -a

Apagar o último caráter de cada linha, no editor vi

Como edito muitos ficheiros de Linux, via Samba, no Notepad, tenho muito código em Linux com linhas a terminar com CRLF, em vez de apenas LF, como é normal no Linux.

Entretanto, a nova versão do vi (nvi) usada pelo Slackware, passou a mostrar esses carateres, que antes estavam escondidos. Agora vejo um ^M no fim de cada linha dos ficheiros editados no Notepad.

Para remover esse caráter, ao longo de todo o ficheiro, pode usar-se o seguinte comando, no vi:

:%s/.$//

Para remover os primeiros 10 carateres, ao longo de todo o ficheiro:

:%s/^.\{0,10\}//