comando mail sempre apontando para o arquivo do root

comando mail sempre apontando para o arquivo do root

Estou tentando configurar um servidor de email postfix. Os e-mails para o root estão acessíveis. Mas ao verificar o e-mail para usuários não root, recebo o seguinte erro

/var/spool/mail/root: Permissão negada

O arquivo /var/spool/mail/$USERestá presente para o respectivo usuário, mas ainda assim o comando mail se refere ao arquivo raiz.

Saída do postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mail_spool_directory = /var/spool/mail
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
mydomain = domain.in
myhostname = server.domain.in
mynetworks = 166.64.32.22, 127.0.0.0/8
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
unknown_local_recipient_reject_code = 550

Responder1

Portanto, o problema aqui não está relacionado ao postfix. O Postfix no lado do servidor se comporta corretamente, mas o cliente de email se comporta mal.

Por padrãomailcomandoin usará $MAILa variável de ambiente para determinar a localização da caixa de correio (a menos que você informe explicitamente usando -fo parâmetro). No shell bash do CentOS, o valor padrão da variável $MAIL é /var/spool/mail/$USER. Trecho de man mail.

CORRESPONDÊNCIA

É usado como caixa de correio do usuário, se definido. Caso contrário, será utilizado um padrão dependente do sistema. Pode ser uma string protocol:// (consulte o comando da pasta para obter mais informações).

OP afirma no comentárioque ele usou su myuserdo usuário root para alterar o usuário no shell. Infelizmente, isso tem algum efeito. A variável $MAIL ainda aponta para /var/spool/mail/root. Portanto, o caminho da caixa de correio não mudou, mas o privilégio foi transferido para o usuário não root.

Para resolver o problema, você pode usar su -l myuserpara alterar o usuário no shell. Trecho de man su.

-, -l, --login

faça do shell um shell de login

Sem -l, a variável de ambiente não mudará sozinha.

Conclusão: ambos os softwares (postfix e bsd-mailx) se comportaram corretamente. O problema é o OP que não consegue definir a variável de ambiente antes de alterar o usuário.

informação relacionada