
Ich habe gerade eine lokale E-Mail mit der folgenden Syntax gesendet:
echo "Testing" | mail -s "This is just a test" root@localhost
Dann melde ich mich als Root an mit:
sudo -i
Und schaue meine E-Mails nach. Die Nachricht ist da. Wenn ich den Mail-Befehl wiederhole und mich mit folgendem Befehl als Root anmelde:
su root
Die E-Mail ist nicht in meinem Postfach. In beiden Fällen melde ich mich mit dem Root-Konto an. Was passiert also hier? Es handelt sich um eine ziemlich neue, grundlegende Installation von CentOS 7.
Ich habe es sogar noch einmal geprüft, indem ich mich mit „su“ angemeldet habe. Als die E-Mail nicht da war, habe ich mich abgemeldet und mit „sudo -i“ wieder angemeldet. Und tatsächlich war die E-Mail da.
Antwort1
Die Ursache für dieses Verhalten ist die MAIL
Umgebungsvariable. Wenn Sie mit
sudo -i
Sie simulieren eine erste Anmeldung ( -i
) und die MAIL
Umgebungsvariable wird auf gesetzt /var/spool/mail/root
. Wenn Sie mit zu root wechseln
su root
Die MAIL
Umgebungsvariable behält ihren alten Wert, d. h. /var/spool/mail/jo
, der Befehl mail
überprüft das Postfach des Benutzers und nicht das Postfach von root. Deshalb sehen Sie, dass es leer ist.