GNU/Linux >> Tutoriales Linux >  >> Fedora

Fedora Linux:Instalé Sendmail pero ahora no recibo notificaciones de correo cuando inicio sesión.

Instalé sendmail paquete en Fedora 23. Así que ahora tengo /usr/sbin/sendmail eso realmente funciona. Excepto que ahora no recibo notificaciones por correo en el shell bash. ¿Por qué no?

EDITAR:pensé que la notificación de bash estaba rota (y funcionaba con esmtp, como se describe a continuación). Sin embargo, la notificación al iniciar sesión fue más fácil de probar, por lo que me temo que confundí el problema.

La notificación al iniciar sesión no funcionó, pero creo que en realidad es responsabilidad de pam_mail, no de bash. Pensé que las notificaciones al iniciar sesión funcionaban con esmtp, pero observé grep -r pam_mail /etc/pam.d no muestra ningún resultado. Desafortunadamente, habilitar pam_mail según la documentación no parece hacer nada , aunque se supone que debe imprimirse siempre, p. “Sin correo”. También tiene un debug opción, pero eso no mostró nada al usuario ni syslog (también conocido como el diario).

mail alan; sleep 60 lo hace generar una notificación.

Sin embargo, si envío un mail alan; logout entonces no recibo ninguna notificación cuando vuelvo a iniciar sesión. Incluso después de sleep 60 . Obviamente esto no es deseable.

Parece que bash asume pam_mail está trabajando. Entonces, si el correo está disponible en el momento del inicio de sesión, entonces bash se asegura de que no para notificar una segunda vez por el mismo correo.

Entonces, el verdadero problema es que pam_mail no funciona.

Esta realización requirió pruebas exhaustivas porque soy tonto.

Pruebas exhaustivas

Si mail alan , luego abra un segundo inicio de sesión y ejecute sleep 60 , recibo una notificación en un inicio de sesión (solo). Obviamente, no es un problema con un script de cierre de sesión, porque mail alan; sleep 60 funciona incluso si abro un segundo inicio de sesión y lo cierro inmediatamente.

La prueba con el envío de correo de un segundo usuario sugiere que las notificaciones no funcionan si no ha iniciado sesión cuando se envía el correo.

Una vez que bash ha mostrado una notificación, no la vuelve a mostrar, p. después de un segundo sleep 60 .

Pensé que podría estar comparando el tiempo de acceso del archivo con el tiempo de modificación, pero ese no parece ser el caso.

$ stat $MAIL
Archivo:'/var/spool/mail/alan'
Tamaño:859 Bloques:16 Bloque IO:4096 archivo normal
Dispositivo:fd00h/64768d Inodo:655929 Enlaces:1
Acceso:(0660/-rw-rw—-) Uid:( 1000/ alan) Gid:( 12/ mail)
Contexto:unconfined_u:object_r:mail_spool_t:s0
Acceso:2016-05-12 22:17:28.907175410 +0100
Modificar:2016-05-12 22:18:03.177899774 +0100
Cambiar:2016-05-12 22:18:03.177899774 +0100
Nacimiento:–

Variables de entorno

Ejemplo a continuación. Esto es después de que me envié un correo de prueba. Entonces, cuando inicio sesión, espero una notificación. Si continúo ejecutando mail , me muestra el correo de prueba como se esperaba.

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

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

[[email protected] ~]$ 

Instalando sendmail

Fedora Workstation se envía con un /bin/sendmail que no funciona (paquete esmtp).

Se puede configurar instalando maildrop y configurando mda="maildrop -d %T" in /etc/esmtprc . Esto permite enviar correo de un usuario a sí mismo y de raíz a cualquier persona. Con esmtp y maildrop, bash muestra las notificaciones de correo como se esperaba .

Relacionado:¿Por qué las notificaciones de Facebook siguen emitiendo sonidos incluso después de desactivar "Reproducir un sonido cuando se recibe cada nueva notificación"?

Sin embargo, esmtp no funciona para correos del cron demonio. esmtp registra "permiso denegado" cuando intenta leer el mensaje para entregar. https://bugzilla.redhat.com/show_bug.cgi?id=1303305 Específicamente, al intentar volver a abrir /dev/stdin , que generalmente se espera que tenga éxito (equivalente a dup() ). Entonces, probablemente sea SELinux, pero no hay ninguna denegación de SELinux (AVC) registrada, probablemente sea dontaudit .

La instalación del antiguo paquete sendmail reemplaza el comando sendmail proporcionado por esmtp. Pensé que sería una forma sencilla de evitar los nuevos errores, pero ahora tengo otro error :(.

Respuesta aceptada:

La configuración para informar sobre el estado del correo en el momento del inicio de sesión está a cargo de pam_mail . Verifique el archivo correspondiente (por ejemplo, /etc/pam.d/ssh ) y asegúrese de tener una línea similar a esta:

session    optional     pam_mail.so standard noenv

Puede ser diferente dependiendo de su distribución. Consulte la documentación de su distribución para ver cómo debe configurarse.


Fedora
  1. Descargar Fedora

  2. Cómo instalar VLC en Fedora Linux

  3. Cómo instalar Zoom en Fedora Linux 35

  4. Servicio de sistema operativo Linux 'sendmail'

  5. Obtenga el registro del correo enviado con mail() desde PHP (¿sendmail?)

Instalar/Actualizar PHP 8.1 en Fedora Linux 35

Cómo instalar PHP 8.1 en Fedora 36 Linux

Instale Apache Maven en Fedora Linux 35

Instalar CMake en Fedora Linux 35

Cómo instalar Python 3.10 en Fedora Linux

Cómo instalar Webmin en Fedora Linux