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