mail command sempre apontando para o arquivo root

1

Estou tentando configurar um servidor de e-mail postfix. O correio para a raiz está acessível. Mas enquanto checava o e-mail para usuários não-root, recebi o seguinte erro

/var/spool/mail/root: Permission denied

O arquivo /var/spool/mail/$USER está presente para o respectivo usuário, mas ainda assim o comando mail refere-se ao arquivo da 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
    
por Rishi 19.05.2015 / 20:53

1 resposta

1

Então, o problema aqui não está relacionado com o postfix. O postfix no lado do servidor se comporta corretamente, mas o cliente de e-mail se comporta mal.

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

MAIL

Is used as the user's mailbox, if set. Otherwise, a system-dependent default is used. Can be a protocol:// string (see the folder command for more information).

O OP declara no comentário que 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 previlige foi descartado para um usuário não raiz.

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

-, -l, --login

make the shell a login shell

Sem -l , a variável de ambiente não será alterada.

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

    
por 28.05.2015 / 04:17

Tags