команда mail всегда указывает на файл root

команда mail всегда указывает на файл root

Я пытаюсь настроить почтовый сервер postfix. Почта для root доступна. Но при проверке почты для не-root пользователей я получаю следующую ошибку

/var/spool/mail/root: Отказано в доступе

Файл /var/spool/mail/$USERприсутствует для соответствующего пользователя, но команда mail по-прежнему ссылается на файл root.

Вывод 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

решение1

Так что проблема тут вообще не связана с postfix. Postfix на стороне сервера ведет себя правильно, а вот почтовый клиент ведет себя некорректно.

По умолчаниюmailкомандаin будет использовать $MAILпеременную окружения для определения местоположения почтового ящика (если вы не укажете это явно с помощью -fпараметра). В оболочке CentOS bash значение переменной $MAIL по умолчанию равно /var/spool/mail/$USER. Фрагмент из man mail.

ПОЧТА

Используется как почтовый ящик пользователя, если задано. В противном случае используется системно-зависимое значение по умолчанию. Может быть строкой protocol:// (см. команду folder для получения дополнительной информации).

ОП заявляет в комментариикоторый он использовал su myuserот пользователя root для смены пользователя в оболочке. К сожалению, это имеет некоторый эффект. Переменная $MAIL по-прежнему указывает на /var/spool/mail/root. Таким образом, путь к почтовому ящику не изменился, но приоритет был сброшен до пользователя non-root.

Чтобы решить эту проблему, вы можете использовать su -l myuserдля смены пользователя в оболочке. Фрагмент из man su.

-, -l, --login

сделать оболочку оболочкой входа

Без этого -lпеременная окружения не изменится.

Вывод: оба ПО (postfix и bsd-mailx) ведут себя правильно. Проблема в OP, который не установил переменную окружения перед сменой пользователя.

Связанный контент