nspawn: reset environment and load login shell

This commit is contained in:
Lennart Poettering
2011-03-14 03:28:16 +01:00
parent 124640f177
commit da5b3bad1c
+10 -3
View File
@@ -390,6 +390,11 @@ int main(int argc, char *argv[]) {
if (pid == 0) {
const char *hn;
const char *envp[] = {
"HOME=/root",
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
NULL
};
/* child */
@@ -425,9 +430,11 @@ int main(int argc, char *argv[]) {
sethostname(hn, strlen(hn));
if (argc > optind)
execvp(argv[optind], argv + optind);
else
execl("/bin/bash", "/bin/bash", NULL);
execvpe(argv[optind], argv + optind, (char**) envp);
else {
chdir("/root");
execle("/bin/bash", "-bash", NULL, (char**) envp);
}
log_error("execv() failed: %m");