GNU/Linux >> Znalost Linux >  >> Fedora

Fedora Linux:Nainstaloval jsem Sendmail, ale nyní nedostávám upozornění e-mailem, když se přihlásím?

Nainstaloval jsem sendmail balíček na Fedoře 23. Takže teď mám /usr/sbin/sendmail že to vlastně tak nějak funguje. Až na to, že teď nedostávám e-mailová upozornění v prostředí bash. Proč ne?

EDIT:Myslel jsem, že oznámení bash bylo nefunkční (a fungovalo s esmtp, jak je popsáno níže). Oznámení při přihlášení však bylo snazší otestovat, takže se obávám, že jsem si problém spletl.

Oznámení při přihlášení nefungovalo, ale myslím, že za to ve skutečnosti nese odpovědnost pam_mail, nikoli bash. Myslel jsem, že upozornění při přihlášení fungovalo s esmtp, ale všiml jsem si grep -r pam_mail /etc/pam.d neukazuje žádné výsledky. Bohužel se nezdá, že povolení pam_mail podle dokumentace nedělá nic , i když se má vždy tisknout, např. "Žádná pošta". Má také debug možnost, ale to uživateli ani syslog (neboli deník) nic nezobrazilo.

mail alan; sleep 60 dělá vygenerovat oznámení.

Pokud však mail alan; logout pak neobdržím žádné upozornění, když se znovu přihlásím. I po sleep 60 . To je zjevně nežádoucí.

Zdá se, že bash předpokládá pam_mail pracuje. Pokud je tedy pošta dostupná v době přihlášení, bash zajistí, že ne upozornit podruhé na stejnou poštu.

Takže skutečný problém je, že pam_mail nefunguje.

Toto zjištění vyžadovalo vyčerpávající testy, protože jsem hloupý.

Vyčerpávající testy

Pokud mail alan , poté otevřete druhé přihlášení a spusťte sleep 60 , dostanu upozornění při jednom přihlášení (pouze). Není to zjevně problém s odhlašovacím skriptem, protože mail alan; sleep 60 funguje, i když otevřu druhé přihlášení a okamžitě se odhlásím.

Testování s odesíláním pošty od druhého uživatele naznačuje, že oznámení nefungují, pokud nejste při odesílání pošty přihlášeni.

Jakmile bash zobrazí oznámení, již je nezobrazuje, např. po druhém sleep 60 .

Myslel jsem, že by to mohlo porovnávat dobu přístupu k souboru s dobou úpravy, ale nezdá se, že by tomu tak bylo.

$ stat $MAIL
Soubor:'/var/spool/mail/alan'
Velikost:859 Bloky:16 IO Blok:4096 běžný soubor
Zařízení:fd00h/64768d Inode:655929 Odkazy:1
Přístup:(0660/-rw-rw—-) Uid:( 1000/ alan) Gid:( 12/ mail)
Kontext:unconfined_u:object_r:mail_spool_t:s0
Přístup:2016-05-12 22:17:28.907175410 +0100
Změnit:2016-05-12 22:18:03.177899774 +0100
Změna:2016-05-175410
Změnit:2016-05-1792:081.0 /> Narození:–

Proměnné prostředí

Příklad níže. To je poté, co jsem si poslal testovací e-mail. Takže když se přihlásím, očekávám upozornění. Pokud přejdu ke spuštění mail , zobrazí se mi testovací e-mail podle očekávání.

[[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] ~]$ 

Instalace sendmail

Fedora Workstation se dodává s nefunkčním /bin/sendmail (balíček esmtp).

Lze jej nastavit instalací maildrop a nastavením mda="maildrop -d %T" in /etc/esmtprc . To umožňuje poštu od uživatele k sobě samému a od uživatele root komukoli. S esmtp a maildrop bash zobrazuje e-mailová upozornění podle očekávání .

Související:Proč oznámení z Facebooku stále vydávají zvuky, i když vypnu možnost „Přehrát zvuk při přijetí každého nového oznámení“?

esmtp však nefunguje pro e-maily z cron démon. esmtp zaznamenává „oprávnění odepřeno“ při pokusu o přečtení zprávy k doručení. https://bugzilla.redhat.com/show_bug.cgi?id=1303305 Konkrétně při pokusu o opětovné otevření /dev/stdin , u kterého se obecně očekává úspěch (ekvivalentní dup() ). Takže je to pravděpodobně SELinux, ale není zaznamenáno žádné odmítnutí SELinux (AVC), pravděpodobně je to dontaudit .

Instalace starého balíčku sendmail nahradí příkaz sendmail poskytovaný esmtp. Myslel jsem, že to bude jednoduchý způsob, jak obejít nové chyby, ale teď mám další chybu :(.

Přijatá odpověď:

Konfigurace pro hlášení o stavu pošty v době přihlášení se provádí pomocí pam_mail . Zkontrolujte odpovídající soubor (např. /etc/pam.d/ssh ) a ujistěte se, že máte řádek, který vypadá asi takto:

session    optional     pam_mail.so standard noenv

Může se lišit v závislosti na vaší distribuci. Podívejte se do dokumentace vaší distribuce, abyste viděli, jak by měla být nastavena.


Fedora
  1. Jak nainstalovat VLC na Fedora Linux

  2. Jak nainstalovat Zoom ve Fedora Linux 35

  3. Služba OS Linux „sendmail“

  1. Fedora ke stažení

  2. Jak nainstalovat Oracle Virtual Box 5.0 na (Ubuntu) Linux

  3. Získejte protokol pošty odeslané pomocí mail() z PHP (sendmail?)

  1. Co je nového ve Fedora 32 Workstation

  2. Jak nainstalovat PostgreSQL 14 ve Fedora Linux

  3. Fedora 28 je konečně vydána, stáhněte si nyní!