Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
#cd /usr/src
#find . -name rtld.c (чтобы найти где этот файлик)
#cd /usr/src/libexec/rtld-elf
#cp rtld.c rtld.c.bak
#ee rtld.c
находите кусок (я искал по строке future)
if (!trust) {
unsetenv(LD_ "PRELOAD");
unsetenv(LD_ "LIBMAP");
unsetenv(LD_ "LIBRARY_PATH");
unsetenv(LD_ "LIBMAP_DISABLE");
unsetenv(LD_ "DEBUG");
и меняете его на
if (!trust) {
// unsetenv(LD_ "PRELOAD");
// unsetenv(LD_ "LIBMAP");
// unsetenv(LD_ "LIBRARY_PATH");
// unsetenv(LD_ "LIBMAP_DISABLE");
// unsetenv(LD_ "DEBUG");
if (unsetenv(LD_ "PRELOAD") || unsetenv(LD_ "LIBMAP") ||
unsetenv(LD_ "LIBRARY_PATH") || unsetenv(LD_ "LIBMAP_DISABLE") ||
unsetenv(LD_ "DEBUG") || unsetenv(LD_ "ELF_HINTS_PATH")) {
_rtld_error("environment corrupt; aborting");
die();
}
}
#make
#make install
unsetenv(LD_ "ELF_HINTS_PATH");а в 7.1 — 7.2 эта строка отстутствует.
Уязвимость в FreeBSD