Это похоже на как установить переменную окружения, когда execle выполняет bash?
Я пытаюсь использовать execle () в C для выполнения / bin / login и передачи переменной окружения в целевую оболочку.
И не может заставить его работать.
Я попытался передать среду, как описано на странице руководства, как завершенный массивом NULL строк VAR = VAL.
Также я попробовал с putenv () перед звонком.
Например:
const char *env[] = { "MYVAR=myval", (char *)0 };
putenv("MYVAR=myval");
execle("/bin/login", "login", "-p", "-f", user, (char *)0, env);
После успешного входа в систему я ожидал увидеть MYVAR как переменную среды, но иметь только переменные, такие как USER, HOME, SHELL, PATH и т. Д.
Я попытался с помощью входа в BusyBox и с tinylogin ... тот же результат.
Любая помощь высоко ценится.