Вы должны отформатировать, чтобы защитить / var / tmp
. Затем установите параметры монтирования. Debian дает вам возможность, но другие не могут. Вы можете добавить noexec
, nosuid
и nodev
позже.
Я получил несколько советов, которые помогли мне исправить ошибку. Некоторые могут счесть это обходным путем.
Я отредактировал команду, чтобы скрипт запускался от имени пользователя Pi:
void sendFile()
{
string command = "su pi -c \"/home/pi/emailscript " + lastFile + " " + emailAddress + "\"";
system(command.c_str());
}
«Правильным» решением могло бы быть включение конфигурации mutt в /root, но мне это не помогло.
Я не знаю, есть ли у вас эта проблема, но это решило ее для меня:
sudo sh -c "echo >> /etc/Muttrc && cat /home/pi/.muttrc >> /etc/Muttrc"
Когда я столкнулся с тем, что mutt не работает с sudo, я попытался найти ошибки, но не нашел ни одной. Во всяком случае, не в /home/pi/.muttdebug0, оказалось, что мне пришлось заглянуть в /root/.muttdebug0, но и там ошибок нет, даже с «-d 2». Просто отсутствие информации по сравнению с /home/pi/.muttdebug0, это было почти так, как будто mutt даже не пытался отправлять электронные письма при выполнении с помощью sudo.
Когда я гуглил, я наткнулся на эту страницу и подумал, что «включить конфигурацию mutt в /root» может быть уловкой, но вы сказали, что это не сработало, я могу знать, почему.
Файл журнала /root/.muttdebug0 не показывал никаких ошибок, но показывал это :" Чтение файла конфигурации '/etc/Muttrc'. "
В отличие от имени файла конфигурации в /home/pi,это имя файла конфигурации не начинается с . , может поэтому у вас не сработало? Чтобы вы могли не знать, что имя файла отличается, о, и не забудьте заглавную M ;)