Внезапно столкнулся с тем, что из крона не отрабатывал скрипт, который прекрасно отрабатывал из консоли. Выдавал в STDERR указанную ошибку- sorry, you must have a tty to run sudo.
Проблема решается изменением файла /etc/sudoers. Для его изменения рекомендую использовать утилиту visudo, а не править редактором напрямую. Находим строку:
Defaults requiretty
И закомментируем её:
#Defaults requiretty
И всё, sudo отлично работает из под cron.
Примечание: на самом деле, лучше переписать скрипты без использования sudo, поскольку эта закомментирование этой директивы наносит некоторый ущерб безопасности сервера:
# Disable «ssh hostname sudo «, because it will show the password in clear.
# You have to run «ssh -t hostname sudo «.
Автор: AlexWinner