로컬에서 루트 사용자에게 이메일을 보낼 수 있습니까?

로컬에서 루트 사용자에게 이메일을 보낼 수 있습니까?

Debian VPS에 메일 시스템을 설정했습니다. 사용자에게 이메일을 보낼 수 없다는 점을 제외하면 모든 것이 원활하게 작동합니다 root.

/etc/aliases다음 과 같이 지정할 수 있는 해결 방법이 있습니다 .

root: <some_other_user>

으로 전송된 모든 이메일은 사서함 root@<fqdn>으로 이동됩니다 .<some_other_user>@<fqdn>

보안적인 관점에서는 훨씬 더 좋지만, 사용자에게 이메일을 보낼 수 있는 방법이 있는지 알고 싶습니다 root.

그렇다면 Postfix는 기술적으로 가능할까요? 그렇다면 어떻게 해야 합니까?

고쳐 쓰다:

postfix.service로그 는 다음과 같습니다 .

Apr 26 22:18:25 <hostname><fqdn> postfix/qmgr[2375]: 3905421760: from=<ddnomad@<fqdn>>, size=631, nrcpt=1 (queue active)
Apr 26 22:18:26 <hostname><fqdn> postfix/local[2429]: 3905421760: to=<mailuser@<fqdn>>, orig_to=<root@<fqdn>>, relay=local, delay=1.3, delays=0.21/0.01/0/1, dsn=2.0.0, status=sent (delivered to command: procmail -a "$EXTENSION")

제가 알기로는 편지가 성공적으로 전송되었다는 의미입니다. 그러나 root그의 우편함에는 도착하지 않았습니다 .

답변1

postfix는 를 사용하여 procmail이메일을 보내고, postfix보안상의 이유로 호출이 실행되면 보낸 이메일이 최종적으로 사용자에게 전송됩니다.procmailnobodyrootnobody

데비안 메일링 리스트가 나보다 더 잘 설명하고 있다, 솔루션 제안:

Postfix의 자체 배달 에이전트는 루트의 메일함으로 배달할 수 있지만 Postfix는 외부 프로그램(예: procmail)을 루트로 포크하지 않습니다. UID를 전달되는 메시지의 소유자로 변경하거나, 사용자가 루트인 경우 UID를 none으로 변경합니다.

따라서 procmail은 루트의 메일을 전달할 때 아무도 없는 상태로 실행됩니다.

/var/spool/mail/root를 /var/spool/mail/nobody에 심볼릭 링크하여 이 문제를 해결했습니다. 그런 다음 루트의 메일을 루트로 읽을 수 있었습니다.
이는 권장되는 접근 방식이 아닙니다. 대부분의 사람들은 루트의 메일을 /etc/aliases의 다른 사용자에게 직접 전달하는 것을 권장합니다.

스레드를 더 올라가면 그들은 또한 기억합니다.postfix 루트 메일에 대해 자주 묻는 질문:

로컬 메일 전달을 위해 procmail(또는 다른 명령)을 사용하는 경우 Postfix는 메일을 루트로 전달하지 않습니다. 대신 Postfix는 procmail(또는 무엇이든)을 none으로 실행합니다. 어쩌면 언젠가 Wietse는 외부 명령을 루트로 실행할 수 있을 만큼 Postfix를 신뢰하게 될 것입니다. 해결 방법: 루트로 로그인하면 안 되는 것처럼(특이한 상황 제외) 루트로 메일을 받아서도 안 됩니다.

루트에 대한 메일 별칭을 만들고 실제 사용자에게 메일을 전달합니다.

관련 정보