Fedora Linux: Eu instalei o sendmail, mas agora não recebo notificações de e-mail quando faço login

4

Eu instalei o pacote sendmail no Fedora 23. Então agora eu tenho /usr/sbin/sendmail que realmente funciona. Exceto agora eu não recebo notificações de correio no bash shell. Porque não?

EDIT: Eu pensei que a notificação de bash foi quebrada (e trabalhou com esmtp, conforme descrito abaixo). No entanto, a notificação no login foi mais fácil de testar, por isso receio ter confundido o problema.

A notificação no login não funcionou, mas acho que é responsabilidade do pam_mail, não do bash. Achei que as notificações no login funcionavam com o esmtp, mas percebo que grep -r pam_mail /etc/pam.d não mostra nenhum resultado. Infelizmente, ativar o pam_mail de acordo com a documentação não parece fazer qualquer coisa , embora deva sempre ser impresso, por exemplo, "Nenhum email". Ele também tem uma opção debug , mas isso não mostra nada ao usuário nem ao syslog (também conhecido como periódico).

mail alan; sleep 60 faz gerar uma notificação.

No entanto, se eu mail alan; logout , não receberei nenhuma notificação quando eu fizer login novamente. Mesmo depois de sleep 60 . Obviamente, isso é indesejável.

Parece que o bash assume que pam_mail está funcionando. Portanto, se o e-mail estiver disponível no momento do login, o bash garante que não seja notificado pela segunda vez para o mesmo e-mail.

O problema real é que o pam_mail não está funcionando.

Essa realização exigiu testes exaustivos porque sou burro.

Exames exaustivos

Se eu mail alan , em seguida, abrir um segundo login e executar sleep 60 , receberei uma notificação em um login (apenas). Não é obviamente um problema com um script de logout, porque mail alan; sleep 60 funciona mesmo se eu abrir um segundo login e efetuar o logout imediatamente.

O teste ao enviar e-mails de um segundo usuário sugere que as notificações não funcionem se você não estiver conectado quando o e-mail for enviado.

Uma vez que o bash exibiu uma notificação, ele não está sendo exibido novamente. depois de um segundo sleep 60 .

Eu pensei que poderia estar comparando o tempo de acesso do arquivo à hora da modificação, mas esse não parece ser o caso.

$ stat $ MAIL   Arquivo: "/ var / spool / mail / alan"   Tamanho: 859 Blocos: 16 Bloco IO: 4096 arquivo regular Equipamento: fd00h / 64768d Inode: 655929 Links: 1 Acesso: (0660 / -rw-rw ----) Uid: (1000 / alan) Gid: (12 / mail) Contexto: unconfined_u: object_r: mail_spool_t: s0 Acesso: 2016-05-12 22: 17: 28.907175410 +0100 Alterar: 2016-05-12 22: 18: 03.177899774 +0100 Alteração: 2016-05-12 22: 18: 03.177899774 +0100  Nascimento: -

Variáveis de ambiente

Exemplo abaixo. Isso foi depois que enviei uma mensagem de teste para mim mesmo. Então, quando eu fizer login, espero uma notificação. Se eu for executar mail , ele mostrará o e-mail de teste conforme o esperado.

[alan@localhost ~]$ ssh alan-nuc
Last login: Thu May 12 20:50:54 2016 from 172.16.9.242

[alan@alan-nuc ~]$ echo $MAIL
/var/spool/mail/alan
[alan@alan-nuc ~]$ ls -l $MAIL
-rw-rw----. 1 alan mail 850 May 12 20:56 /var/spool/mail/alan
[alan@alan-nuc ~]$ echo $MAILCHECK
60
[alan@alan-nuc ~]$ echo $MAILPATH

[alan@alan-nuc ~]$ 

Instalando o sendmail

O Fedora Workstation vem com um /bin/sendmail (pacote esmtp) que não funciona.

Ele pode ser configurado por maildrop e configuração mda="maildrop -d %T" in /etc/esmtprc . Isso permite enviar mensagens de um usuário para você mesmo e da raiz para qualquer pessoa. Com o esmtp e o maildrop, o bash mostra notificações de correio conforme o esperado .

No entanto, o esmtp não funciona para e-mails do daemon cron . O esmtp registra "permissão negada" ao tentar ler a mensagem para entregar. link Especificamente, ao tentar reabrir /dev/stdin , que geralmente é esperado que seja bem-sucedido (equivalente a %código%). Portanto, é provavelmente o SELinux, mas não há nenhuma negação do SELinux (AVC) registrada, provavelmente é dup() .

A instalação do antigo pacote sendmail substitui o comando sendmail fornecido pelo esmtp. Eu pensei que seria uma maneira simples de contornar os novos bugs, mas agora eu tenho outro bug: (.

    
por sourcejedi 30.04.2016 / 12:40

1 resposta

0

A configuração para relatar o status do e-mail no momento do login é tratada por pam_mail . Verifique o arquivo correspondente (por exemplo, /etc/pam.d/ssh ) e verifique se você tem uma linha parecida com esta:

session    optional     pam_mail.so standard noenv

Pode ser diferente dependendo da sua distribuição. Verifique a documentação da sua distribuição para ver como ela deve ser definida.

    
por 14.05.2016 / 03:29