rc.d and environment
Jan. 26th, 2019 03:37 pmВ /usr/sbin/service в конце присутствует "env -i":
поэтому если запускать сервис вручную через "service mydaemon start", то все переменные среды будут очищены, а если запускать через /usr/local/etc/rc.d/mydaemon start", то все переменные среды рута попадут в окружение mydaemon, т.к. в самих rc-скриптах никакая очистка не производится.
По-моему это в некотором роде уязвимость. Сейчас активно обсуждается в https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=235185
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 HOME=/ PATH=/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/show_bug.cgi?id=235185