Показать сообщение отдельно
  #1  
Старый 26.01.2019, 13:12
Victor Sudakov
Guest
 
Сообщений: n/a
По умолчанию rc.d and environment

Victor Sudakov написал(а) к All в Jan 19 15:46:40 по местному времени:

Dear All,

В /usr/sbin/service в конце присутствует "env -i":

for dir in /etc/rc.d $local_startup; do
if [ -x "$dir/$script" ]; then
[ -n "$VERBOSE" ] && echo "$script is located in $dir"
exec env -i НOME=/ PATН=/sbin:/bin:/usr/sbin:/usr/bin $dir/$script $*
fi
done

поэтому если запускать сервис вручную через "service mydaemon start", то все переменные среды будут очищены, а если запускать через /usr/local/etc/rc.d/mydaemon start", то все переменные среды рута попадут в окружение mydaemon, т.к. в самих rc-скриптах никакая очистка не предусмотрена.

По-моему это в некотором роде уязвимость (утечка информации). Сейчас активно обсуждается в https://bugs.freebsd.org/bugzilla/sh....cgi?id=235185 (только не говорите, что я должен был всю переписку вместо этой ссылки вывалить сюда).

Victor Sudakov, VAS4-RIPE, VAS47-RIPN
--- GoldED+/BSD 1.1.5-b20160322-b20160322
Ответить с цитированием