
방금 다음 구문을 사용하여 로컬 메일을 보냈습니다.
echo "Testing" | mail -s "This is just a test" root@localhost
그런 다음 다음을 사용하여 루트에 로그인합니다.
sudo -i
그리고 내 메일을 확인해 보세요. 메시지가 거기에 있습니다. mail 명령을 반복하고 다음을 사용하여 루트에 로그인하면:
su root
우편물이 내 우편함에 없습니다. 두 경우 모두 루트 계정에 로그인하고 있는데 여기서 무슨 일이 일어나고 있습니까? CentOS 7의 상당히 새로운 기본 설치입니다.
su를 사용하여 로그인하여 다시 확인했는데 거기에 없으면 sudo -i를 사용하여 로그아웃했다가 다시 로그인했는데 확실히 메일이 거기에 있었습니다.
답변1
이 동작의 원인은 MAIL
환경 변수입니다. 다음을 사용하여 루트로 전환하면
sudo -i
초기 로그인( -i
)을 시뮬레이션하고 MAIL
환경 변수가 로 설정됩니다 /var/spool/mail/root
. 다음을 사용하여 루트로 전환하면
su root
환경 MAIL
변수는 이전 값을 유지합니다. 즉 /var/spool/mail/jo
, 명령은 mail
루트의 사서함이 아닌 사용자의 사서함을 확인합니다. 이것이 비어 있는 것으로 보이는 이유입니다.