воскресенье, 5 мая 2013 г.

Исправляем ошибку "sorry, you must have a tty to run sudo"

Внезапно столкнулся с тем,  что из крона не отрабатывал скрипт, который прекрасно отрабатывал из консоли. Выдавал в STDERR указанную ошибку-  sorry, you must have a tty to run sudo.
Проблема решается изменением файла /etc/sudoers. Для его изменения рекомендую использовать утилиту visudo, а не править редактором напрямую. Находим строку:
Defaults    requiretty
И закомментируем её:
#Defaults    requiretty

И всё, sudo отлично работает из под cron.


Примечание: на самом деле, лучше переписать скрипты без использования sudo, поскольку эта закомментирование этой директивы наносит некоторый ущерб безопасности сервера:

# Disable "ssh hostname sudo <cmd>", because it will show the password in clear.
#         You have to run "ssh -t hostname sudo <cmd>".

1 комментарий:

Анонимно комментирует...

очень помогло, огромное спасибо