Добавление повышенных разрешений для скриптов в каталоге
У меня есть каталог, содержащий некоторые сценарии, которые мне нужно вызвать из веб-запроса. Сценарии требуют повышенных разрешений для запуска.
Мое текущее мышление состоит в том, чтобы добавить следующие строки в /etc/sudoers
:
Cmnd_Alias WEB_COMMANDS = /path/to/scripts
www-data ALL=(ALL) NOPASSWD: WEB_COMMANDS
Это правильный подход к этой проблеме? Или я вызываю потенциальную уязвимость безопасности?
Использование CentOS 7, если это что-то меняет.
1 ответ
Все, что является потенциальной уязвимостью безопасности. Две вещи:
Прежде всего, вы уверены, что для этого нужен root? Зачем? Можете ли вы сделать это с помощью возможностей вместо этого? (Вы, вероятно, можете.)
При этом, ваш пример почти точный. Добавьте звездочку после пути:
Cmnd_Alias WEB_COMMANDS = /path/to/scripts/*
И теперь это будет работать. Но будьте осторожны, если какой-либо из этих сценариев может быть изменен злоумышленником, злоумышленник получает полный доступ к корню. Они могут просто exec('/bin/bash')
и иметь раковину. Определенно пройдите маршрут возможностей для сценария, если это возможно, и ОБЯЗАТЕЛЬНО заблокируйте каталог сценариев в любом случае. Смотрите этот ответ unix.se для получения информации об управлении возможностями с помощью сценариев.