
Я только что отправил локальное письмо, используя следующий синтаксис:
echo "Testing" | mail -s "This is just a test" root@localhost
Затем я вхожу в систему как root, используя:
sudo -i
И проверьте почту. Сообщение там. Если я повторю команду mail и войду в root с помощью:
su root
Почта не в моем почтовом ящике. В обоих случаях я вхожу в учетную запись root, так что здесь происходит? Это довольно новая, базовая установка CentOS 7.
Я даже проверил еще раз, войдя в систему с помощью su, и когда ее не оказалось, я вышел из системы и снова вошел с помощью sudo -i, и, конечно же, почта была на месте.
решение1
Причиной такого поведения является MAIL
переменная окружения. Когда вы переключаетесь на root с помощью
sudo -i
вы имитируете начальный вход в систему ( -i
), а MAIL
переменная окружения устанавливается в /var/spool/mail/root
. Когда вы переключаетесь на root с помощью
su root
Переменная окружения MAIL
остается в своем старом значении, т.е. /var/spool/mail/jo
и команда mail
проверяет почтовый ящик пользователя, а не почтовый ящик root. Вот почему вы видите его пустым.