
Acabei de enviar um e-mail local usando a seguinte sintaxe:
echo "Testing" | mail -s "This is just a test" root@localhost
Então eu entro no root usando:
sudo -i
E verifique meu e-mail. A mensagem está aí. Se eu repetir o comando mail e fazer login no root usando:
su root
O e-mail não está na minha caixa de correio. Em ambos os casos estou fazendo login na conta root, então o que está acontecendo aqui? É uma instalação básica relativamente nova do CentOS 7.
Eu até verifiquei novamente fazendo login usando su e quando ele não estava lá eu saí e entrei novamente usando sudo -i e com certeza, o e-mail estava lá.
Responder1
A causa desse comportamento é a MAIL
variável de ambiente. Quando você muda para root com
sudo -i
você simula um login inicial ( -i
) e a MAIL
variável de ambiente é definida como /var/spool/mail/root
. Quando você muda para root com
su root
A MAIL
variável de ambiente permanece com seu valor antigo, ou seja, /var/spool/mail/jo
e o comando mail
verifica a caixa de correio do usuário e não a caixa de correio do root. É por isso que você o vê vazio.