방금 다음 구문을 사용하여 로컬 메일을 보냈습니다.
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
루트의 사서함 대신 사용자의 사서함을 확인합니다. 그렇기 때문에 비어 있다고 볼 수 있습니다.