Выполнение программы, вызываемой оболочкой crontab, возвращает код 127

Обязанностью программиста приложения является обеспечение того, чтобы приложение теряло привилегии root и работало с непривилегированными правами. Если приложение этого не делает, вы ничего не можете с этим поделать - кроме отказа от использования приложения, отправки отчета об ошибке разработчику или внесения необходимых изменений в код самостоятельно.

С другой стороны, вы , как администратор, выбираете, от имени какого пользователя запускается приложение; Золотое правило - никогда не предоставлять процессу больше привилегий, чем необходимо для его запуска. Таким образом, вы можете создать непривилегированного пользователя - загляните в / etc / passwd , чтобы получить представление о системных учетных записях - и запустить приложение от имени этого пользователя. (Вам редко приходится делать это вручную; обычно все это делается при установке программного обеспечения через диспетчер пакетов.) Однако, если приложение требует для запуска привилегий root, а затем не может отказаться от таких привилегий в середине бег, то это выходит из-под вашего контроля.

Например, более старые версии sendmail требовали запуска SUID root, что было дырой в безопасности, если удаленному злоумышленнику удавалось успешно использовать уязвимость программы.Если бы у вас был sendmail , работающий только как почтовый ретранслятор, вы могли бы запустить его как непривилегированный пользователь.

2
23.05.2017, 15:40
1 ответ

измените сценарий оболочки, чтобы указать полный или относительный путь к исполняемому файлу:

./executableFile ...

При интерактивном использовании вы должны иметь либо . или каталог cardme / bin в вашем PATH: это будет неверно в среде cron.

2
27.01.2020, 22:10

Теги

Похожие вопросы