Я считаю, что причина, по которой -exec
опасна, заключается в том, что если пользователь не укажет полное имя и путь к программе для выполнения он потенциально может выполнить неправильную программу.
Пример:
find /some/path -exec coolprogram
В / some / path
кто-то создал другую классную программу
, и она выгружает все ваши данные какому-то злоумышленнику.
Но подождите, скажете вы, разве вам не нужно выполнять его как ./ coolprogram
? Да, но у некоторых есть PATH =.: / Bin: something
, который будет выполнять программу в текущем каталоге.
Это, вероятно, упрощено, но я думаю, что в некоторых случаях это может быть опасно. Однажды мне пришлось устранять проблему, когда нулевой байт cpio
оказывался в неправильном каталоге. Это привело к сбою программы, потому что cpio
не работал, поскольку он запускал файл с нулевым байтом в каталоге.
В системах, которые я использую, есть две системы сценариев, которые запускаются каждый раз, когда DHCP-клиент продлевает аренду. Они расположены в /etc/dhcp/dhclient-enter-hooks.d/...
и в /etc/dhcp/dhclient-exit-hooks.d/...
. Они могут быть в другом месте, в зависимости от вашего варианта Linux. Вы можете добавить туда сценарии, которые будут выполняться каждый раз при продлении аренды, и эти сценарии будут иметь доступ ко всем парам ключ/значение, отправляемым DHCP-сервером, в виде переменных оболочки. То, что вы делаете с ними в своем крючковом скрипте (и ), широко открыто. Я предполагаю, что вы используете инструменты DHCP, совместимые с ISC DHCP. Если нет, возможно, вы можете рассмотреть возможность перехода на это. Они документируют, как сценарии клиентских ловушек могут получить параметры, отправленные с DHCP-сервера, и приводят несколько полезных примеров.