Estoy intentando configurar un servidor de correo postfix. Se puede acceder al correo de la raíz. Pero mientras reviso el correo para usuarios no root, aparece el siguiente error
/var/spool/mail/root: Permiso denegado
El archivo /var/spool/mail/$USER
está presente para el usuario respectivo, pero aún así el comando de correo hace referencia al archivo raíz.
Salida de 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
Respuesta1
Entonces, el problema aquí no está relacionado en absoluto con postfix. Postfix en el lado del servidor se comporta correctamente pero el cliente de correo se comporta mal.
Por defectomail
dominioutilizará $MAIL
una variable de entorno para determinar la ubicación del buzón (a menos que lo indique explícitamente mediante -f
el parámetro). En CentOS bash shell, el valor predeterminado de la variable $MAIL es /var/spool/mail/$USER
. Fragmento de man mail
.
CORREO
Se utiliza como buzón del usuario, si está configurado. De lo contrario, se utiliza un valor predeterminado dependiente del sistema. Puede ser una cadena protocolo:// (consulte el comando de carpeta para obtener más información).
OP afirma en el comentarioque usó su myuser
desde el usuario root para cambiar de usuario en el shell. Desafortunadamente, esto tiene algún efecto. La variable $MAIL todavía apunta a /var/spool/mail/root
. Por lo tanto, la ruta del buzón no ha cambiado, pero el privilegio se ha reducido al usuario no root.
Para solucionar el problema, puede utilizar su -l myuser
para cambiar de usuario en el shell. Fragmento de man su
.
-, -l, --iniciar sesión
hacer del shell un shell de inicio de sesión
Sin -l
, la variable de entorno no cambiará por sí sola.
Conclusión: ambos software (postfix y bsd-mailx) se comportan correctamente. El problema es el OP que no establece la variable de entorno antes de cambiar de usuario.