Ваш корневой узел должен действовать как маршрутизатор для других узлов.
Вам необходимо включить переадресацию IP, в вашем случае для IPv4, на маршрутизаторе :
.
sysctl -w net.ipv4.ip_forward = 1
И чтобы сделать его постоянным, отредактируйте /etc/sysctl.conf
и установите:
net.ipv4.ip_forward=1
Вероятно, вы также захотите сделать маршрутизатор шлюзом по умолчанию на других узлах .
Если следующий переход за пределами вашего маршрутизатора не знает о сети 192.168.10.10/24, вам необходимо реализовать преобразование сетевых адресов (. НАТ).
Взгляните на iptables
и его опцию MASQUERADE
.
Возможные проблемы с DNS см. в ответе @Hunter.S.Thompson.
Вы не можете сделать это, кроме как подключиться к отладчику, знающему о внутренней структуре вашей оболочки, и использовать эти знания для извлечения этой информации.
Нет, даже вызов getenv("OK")
или system("printenv OK >/this/tty")
изнутри может сработать, потому что большинство оболочек не используют стандартные функции libc для управления средой и запускают команды, явно передавая список окружения в качестве аргумента execve()
.
Среда из /proc/PID/environ
— это среда, которая была передана при запуске процесса, с учетом того, что она могла быть изменена процессом намеренно или непреднамеренно.
Например, этот (UB -, запускающий )C-код, "добавит" WTF=help
к /proc/PID/environ
, который может быть возвращен или не возвращен getenv()
или передан дочернему элементу, в зависимости от о том, когда и как были вызваны setenv()
или putenv()
:
% cat a.c
#include <string.h>
#include <unistd.h>
int main(int argc, char **argv)
{
memcpy(argv[argc + 1], "WTF=help", 9);
pause();
}
% cc a.c
%./a.out &
[4] 3445
% tr '\0' '\n' </proc/3170/environ | head -n1
WTF=help