Я последовал за этот учебник чтобы обновить мой экземпляр linode с Debian 8 до стабильного. После этого обновления у меня было несколько ошибок / проблем с sendmail.
$ which sendmail
ничего не возвращает. я делать установлен sendmail. Это в /usr/sbin/sendmail
.
Разрешения Sendmail следующие:
$ ls -la /usr/sbin/sendmail
lrwxrwxrwx 1 root root 26 Jul 17 12:41 /usr/sbin/sendmail -> /etc/alternatives/sendmail
Ссылка (/etc/alternatives/sendmail
) выделен красным.
Когда я пытаюсь отправить тестовое письмо с sudo echo "Subject: sendmail test" | /usr/sbin/sendmail -v me@address.com
Я получаю следующую ошибку:
can not write to queue directory /var/spool/mqueue-client/ (RunAsGid=115, required=0): Permission denied
Который разрешения каталога:
$ ls -la /var/spool/mqueue-client
drwxrwxr-x 2 root root 4096 Sep 15 2018 mqueue-client
Итак, у меня, очевидно, есть какая-то проблема с разрешением / владением, но я также думаю, что в пунктах 1 и 2 происходит что-то еще. Мне нужно иметь возможность получать электронные письма от системного OSSEC и Fail2ban, поэтому я действительно не могу пойти без работающего почтового клиента / сервера. Я просто не знаю, как исправить эти проблемы.
Мой sendmail был просто установлен с $ sudo apt-get install sendmail sendmail-bin
, так что он поступил прямо из репозиториев Debian, поэтому я немного сбит с толку этими проблемами ... Я предполагал, что любая необходимая конфигурация будет обработана в процессе установки.
РЕДАКТИРОВАТЬ: вывод ls -l /etc/alternatives/sendmail*
lrwxrwxrwx 1 root root 24 Jul 17 12:41 /etc/alternatives/sendmail -> /usr/lib/sm.bin/sendmail
lrwxrwxrwx 1 root root 42 Jul 17 12:41 /etc/alternatives/sendmail.8.gz -> /usr/share/man/man8/sendmail.sendmail.8.gz
lrwxrwxrwx 1 root root 24 Jul 17 12:41 /etc/alternatives/sendmail-msp -> /usr/lib/sm.bin/sendmail
lrwxrwxrwx 1 root root 42 Jul 17 12:41 /etc/alternatives/sendmail-msp.8.gz -> /usr/share/man/man8/sendmail.sendmail.8.gz
lrwxrwxrwx 1 root root 24 Jul 17 12:41 /etc/alternatives/sendmail-mta -> /usr/lib/sm.bin/sendmail
lrwxrwxrwx 1 root root 42 Jul 17 12:41 /etc/alternatives/sendmail-mta.8.gz -> /usr/share/man/man8/sendmail.sendmail.8.gz
Каждая пара оканчивается другим цветом, например /usr/lib/sm.bin/sendmail
выделен янтарным цветом, а /usr/share/man/man8/sendmail.sendmail.8.gz
выделен красным. Одинаковые цвета - янтарный и красный - для каждой пары.
EDIT2: вывод (echo subject: test; echo ; echo test) | /usr/sbin/sendmail -d44.4 -i -v username
(Я использовал свое настоящее имя пользователя, но изменил полученный результат в целях безопасности):
$ (echo subject: test; echo ; echo test) | /usr/sbin/sendmail -d44.4 -i -v username
safefile(/etc/mail/submit.cf, uid=1000, gid=0, flags=6000, mode=400):
safedirpath(/etc/mail, uid=1000, gid=0, flags=6000, level=0, offset=0):
[dir /etc/mail] OK
[uid 0, nlink 1, stat 100644, mode 4] OK
safefile(/etc/mail/relay-domains, uid=1000, gid=0, flags=6580, mode=400):
safedirpath(/etc/mail, uid=1000, gid=0, flags=6580, level=0, offset=0):
[dir /etc/mail] OK
No such file or directory
safefile(/etc/mail/service.switch, uid=1000, gid=115, flags=6480, mode=400):
safedirpath(/etc/mail, uid=1000, gid=115, flags=6580, level=0, offset=0):
[dir /etc/mail] OK
[uid 0, nlink 1, stat 100644, mode 4] OK
safefile(/etc/mail/service.switch, uid=1000, gid=115, flags=6480, mode=400):
safedirpath(/etc/mail, uid=1000, gid=115, flags=6580, level=0, offset=0):
[dir /etc/mail] OK
[uid 0, nlink 1, stat 100644, mode 4] OK
safefile( , uid=1000, gid=115, flags=40, mode=660):
safedirpath(., uid=1000, gid=115, flags=40, level=0, offset=0):
[dir .] OK
No such file or directory
[final dir . uid 111 mode 42770] Success
safedirpath(/var/spool/mqueue-client, uid=1000, gid=115, flags=0, level=0, offset=0):
[dir /var/spool/mqueue-client] OK
safefile(./dfx6MIGnM5005502, uid=1000, gid=115, flags=2040, mode=600):
safedirpath(., uid=1000, gid=115, flags=2040, level=0, offset=0):
[dir .] OK
No such file or directory
[final dir . uid 111 mode 42770] Success
username... Connecting to [127.0.0.1] via relay...
220 major-productions.com ESMTP Sendmail 8.15.2/8.15.2/Debian-12; Mon, 22 Jul 2019 14:16:49 -0400; (No UCE/UBE) logging access from: localhost(OK)-localhost [127.0.0.1]
>>> EHLO major-productions.com
250-major-productions.com Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5
250-DELIVERBY
250 HELP
>>> VERB
250 2.0.0 Verbose mode
>>> MAIL From:<username@major-productions.com> SIZE=20 AUTH=username@major-productions.com
250 2.1.0 <username@major-productions.com>... Sender ok
>>> RCPT To:<username@major-productions.com>
>>> DATA
250 2.1.5 <username@major-productions.com>... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .
421 4.3.0 collect: Cannot write ./dfx6MIGnHm005503 (bfcommit, uid=0, gid=115): No such file or directory
>>> QUIT
username... Deferred: 421 4.3.0 collect: Cannot write ./dfx6MIGnHm005503 (bfcommit, uid=0, gid=115): No such file or directory
safefile(/var/lib/sendmail/sm-client.st, uid=1000, gid=115, flags=2282, mode=600):
safedirpath(/var/lib/sendmail, uid=1000, gid=115, flags=2282, level=0, offset=0):
[dir /var/lib/sendmail] OK
No such file or directory
safefile(/var/lib/sendmail/sm-client.st, uid=1000, gid=115, flags=2282, mode=600):
safedirpath(/var/lib/sendmail, uid=1000, gid=115, flags=2282, level=0, offset=0):
[dir /var/lib/sendmail] OK
No such file or directory
Closing connection to [127.0.0.1]
РЕДАКТИРОВАТЬ 3: вывод (echo subject: test; echo ; echo test) | /usr/sbin/sendmail -Am -d44.4 -i -v username
при входе в систему как root (с запутанным именем пользователя, как и раньше):
# (echo subject: test; echo ; echo test) | /usr/sbin/sendmail -Am -d44.4 -i -v username
safefile(/etc/mail/sendmail.cf, uid=0, gid=0, flags=6000, mode=400):
safedirpath(/etc/mail, uid=0, gid=0, flags=6000, level=0, offset=0):
[dir /etc/mail] OK
[uid 0, nlink 1, stat 100644, mode 400] OK
safefile(/etc/mail/local-host-names, uid=0, gid=0, flags=6580, mode=400):
safedirpath(/etc/mail, uid=0, gid=0, flags=6580, level=0, offset=0):
[dir /etc/mail] OK
[uid 0, nlink 1, stat 100644, mode 400] OK
safefile(/etc/mail/relay-domains, uid=0, gid=0, flags=6580, mode=400):
safedirpath(/etc/mail, uid=0, gid=0, flags=6580, level=0, offset=0):
[dir /etc/mail] OK
No such file or directory
safefile(/etc/mail/service.switch, uid=0, gid=0, flags=6480, mode=400):
safedirpath(/etc/mail, uid=0, gid=0, flags=6580, level=0, offset=0):
[dir /etc/mail] OK
[uid 0, nlink 1, stat 100644, mode 400] OK
safefile(/etc/mail/service.switch, uid=0, gid=0, flags=6480, mode=400):
safedirpath(/etc/mail, uid=0, gid=0, flags=6580, level=0, offset=0):
[dir /etc/mail] OK
[uid 0, nlink 1, stat 100644, mode 400] OK
safedirpath(/var/spool/mqueue, uid=0, gid=0, flags=4, level=0, offset=0):
[dir /var/spool/mqueue] OK
safefile(/etc/mail/service.switch, uid=0, gid=0, flags=6480, mode=400):
safedirpath(/etc/mail, uid=0, gid=0, flags=6580, level=0, offset=0):
[dir /etc/mail] OK
[uid 0, nlink 1, stat 100644, mode 400] OK
safefile(/etc/mail/aliases.db, uid=0, gid=0, flags=584, mode=400):
safedirpath(/etc/mail, uid=0, gid=0, flags=584, level=0, offset=0):
[dir /etc/mail] OK
[uid 110, nlink 1, stat 100640, mode 400] OK
safedirpath(/home/username, uid=1000, gid=1000, flags=1985, level=0, offset=0):
[dir /home/username] OK
safefile(/home/username/.forward.major-productions, uid=1000, gid=1000, flags=1895, mode=400):
No such file or directory
safedirpath(/home/username, uid=1000, gid=1000, flags=1985, level=0, offset=0):
[dir /home/username] OK
safefile(/home/username/.forward, uid=1000, gid=1000, flags=1895, mode=400):
No such file or directory
safefile(./dfx6MKLN6r006080, uid=0, gid=0, flags=2040, mode=600):
safedirpath(., uid=0, gid=0, flags=2040, level=0, offset=0):
[dir .] OK
No such file or directory
[final dir . uid 0 mode 40700] Success
username... Connecting to local...
safefile(/usr/sbin/sensible-mda, uid=0, gid=0, flags=41904, mode=0):
safedirpath(/usr/sbin, uid=0, gid=0, flags=41904, level=0, offset=0):
[dir /usr/sbin] OK
[uid 0, nlink 1, stat 104755, mode 0] OK
username... Sent
safefile(/var/lib/sendmail/sendmail.st, uid=0, gid=0, flags=2282, mode=600):
safedirpath(/var/lib/sendmail, uid=0, gid=0, flags=2282, level=0, offset=0):
[dir /var/lib/sendmail] OK
No such file or directory
safefile(/var/lib/sendmail/sendmail.st, uid=0, gid=0, flags=2282, mode=600):
safedirpath(/var/lib/sendmail, uid=0, gid=0, flags=2282, level=0, offset=0):
[dir /var/lib/sendmail] OK
No such file or directory
$ which sendmail
ничего не возвращает.sendmail
НЕ ЯВЛЯЕТСЯ установлен у непривилегированных пользователей PATH
=> вы наблюдаете ожидаемый / нормальный результат. sendmail
ожидается, что он будет выполняться другими программами, такими как mail
которые используют полный / абсолютный путь.
исправить /var/spool/mqueue-client
разрешения и владение
chown smmsp:smmsp /var/spool/mqueue-client`
chmod 02770 /var/spool/mqueue-client`
СОВРЕМЕННОЕ ОТПРАВЛЕНИЕ НЕ ТРЕБУЕТ УСТАНОВИТЬ КАК SET ROOT ID
увидеть результаты ls -l --dereference /usr/sbin/sendmail
в комментариях к вопросу:
-r-sr-sr-t 1 root smmsp 860672 Sep 15 2018 /usr/sbin/sendmail
Изменить разрешение конечной цели /usr/sbin/sendmail
и /etc/alternatives
ссылки в Debian:
chmod u-s /usr/lib/sm.bin/sendmail
Это работает, если вы запустите это:
echo "Subject: sendmail test" | sudo sendmail /usr/sbin/sendmail -v me@address.com
Разница в том, что вы запускаете echo от имени root, но не sendmail.
Таким образом, сообщение: «(RunAsGid = 115, required = 0): Permission denied»
«115» - это идентификатор группы вашего пользователя, и он ожидает «0» (что является корневым).