루트 로그인 방법은 로컬 메일 배달에 영향을 미칩니다.

루트 로그인 방법은 로컬 메일 배달에 영향을 미칩니다.

방금 다음 구문을 사용하여 로컬 메일을 보냈습니다.

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루트의 사서함 대신 사용자의 사서함을 확인합니다. 그렇기 때문에 비어 있다고 볼 수 있습니다.

관련 정보