Добавление повышенных разрешений для скриптов в каталоге

235
Sam Hastings

У меня есть каталог, содержащий некоторые сценарии, которые мне нужно вызвать из веб-запроса. Сценарии требуют повышенных разрешений для запуска.

В настоящее время я думаю добавить следующие строки /etc/sudoers:

Cmnd_Alias WEB_COMMANDS = /path/to/scripts www-data ALL=(ALL) NOPASSWD: WEB_COMMANDS 

Это правильный подход к этой проблеме? Или я вызываю потенциальную уязвимость безопасности?

Использование CentOS 7, если это что-то меняет.

2

1 ответ на вопрос

0
Duncan X Simpson

Все является потенциальной уязвимостью безопасности. Две вещи:

Прежде всего, вы уверены, что для этого нужен root? Зачем? Можете ли вы сделать это с возможностями вместо этого? (Вы, вероятно, можете.)

Тем не менее, ваш пример почти точный. Добавьте звездочку после пути:

Cmnd_Alias WEB_COMMANDS = /path/to/scripts/* 

И теперь это будет работать. Но будьте осторожны, если какой-либо из этих сценариев может быть изменен злоумышленником, злоумышленник получает полный доступ к корню . Они могут просто exec('/bin/bash')и иметь оболочку. Определенно пройдите маршрут возможностей для сценария, если это возможно, и ОБЯЗАТЕЛЬНО заблокируйте каталог сценариев в любом случае. Посмотрите этот ответ unix.se для получения информации об управлении возможностями с помощью сценариев.

Спасибо за совет. Библиотека, с которой эти скрипты должны общаться, непреклонна в том, что требуются повышенные разрешения. Я проверю информацию о возможностях, хотя в случае, если это действительно работает. Если нет, то будет ли достаточно установить владельца скриптов root и права доступа 755, чтобы никто не мог их изменить? Sam Hastings 6 лет назад 0
Попытался отозвать свой ответ, но не смог сделать это с менее чем 15 репутацией :-) Sam Hastings 6 лет назад 0
@SamHastings Я бы сказал, 755 слишком открыт. Рассмотрим все, что делают эти сценарии. Может ли быть проблематично, если бы он запускался, когда они не должны были? Я бы сказал, если вы не знаете, что вам нужен более открытый доступ, 0700. Обычно я делаю 0775 или 0770, но когда я имею дело с sudo без пароля, я склонен быть параноиком. Duncan X Simpson 6 лет назад 0

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