Я налаштовую деяку автоматизацію за допомогою дистанційно керованих ботів. Обов'язково, щоб у цих ботів були тільки такі дозволи для виконання певних команд (я не можу занадто багато відкривати дозволи в sudoersдозволі довільних команд).
Це добре працює, я можу налаштувати кілька потрібних мені команд і обійти обмеження пароля (оскільки немає можливості вводити паролі під час роботи sudo) з NOPASSWDдирективою у sudoersфайлі. Але є проблема. Деякі сценарії, зокрема написані в деяких ... е, PHP-рамках ... очікують, що вони будуть запущені з певного каталогу, що вважається коренем проекту.
Цей каталог належить іншому користувачеві www-dataабо в apacheбільшості випадків. Гаразд, я можу дозволити боту запускати скрипт як цей користувач, але я не можу cdвиправити шлях у неінтерактивній сесії, оскільки це неможливо включити cdяк команду у sudoersфайл.
Зазвичай те, що я б робив, - це щось на кшталт cd /var/www/path/to/app && php whatever.php --some args, але я не можу знайти спосіб встановити цей шаблон у sudoersфайлі, здається, це неможливо.
Чи знаєте ви спосіб подолати це?