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/$USER
está 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ãomail
comandoin usará $MAIL
a variável de ambiente para determinar a localização da caixa de correio (a menos que você informe explicitamente usando -f
o 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 myuser
do 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 myuser
para 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.