Package: vzctl
Version: 3.0.24-3
Severity: normal
Tags: patch upstream
"vzctl enter" and "vzctl exec" do some odd things to the process
environment:
- HOME gets set to "/" (except for "enter")
- HISTFILE gets set to /dev/null (for "enter")
I have reported this upstream [1], and got the feedback that my proposed
patch should use getpwuid(0)->pw_dir instead of forcing "/root" [2].
You might want to improve my patch in this direction (after fixing
anything else I might have broken - especially regarding the HISTFILE
handling I am not sure if this is correct).
The main reason for this patch is to get the home directory right, which
otherwise might confuse programs like Bazaar [3].
Not using HISTFILE=/dev/null is useful to get the history of your
commands stored after all.
The Launchpad bug tracking this is also at [3].
1: http://bugzilla.openvz.org/show_bug.cgi?id=942
2: http://bugzilla.openvz.org/show_bug.cgi?id=942#c1
3: https://bugs.launchpad.net/bzr/+bug/622898
-- System Information:
Debian Release: squeeze/sid
APT prefers maverick
APT policy: (500, 'maverick')
Architecture: i386 (i686)
Kernel: Linux 2.6.35-22-generic (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
diff -u vzctl-3.0.24/src/lib/script.c vzctl-3.0.24/src/lib/script.c
--- vzctl-3.0.24/src/lib/script.c
+++ vzctl-3.0.24/src/lib/script.c
@@ -38,7 +38,7 @@
#include "fs.h"
volatile sig_atomic_t alarm_flag;
-static char *envp_bash[] = {"HOME=/", "TERM=linux", ENV_PATH, NULL};
+static char *envp_bash[] = {"HOME=/root", "TERM=linux", ENV_PATH, NULL};
int read_script(const char *fname, char *include, char **buf)
{
diff -u vzctl-3.0.24/src/lib/env.c vzctl-3.0.24/src/lib/env.c
--- vzctl-3.0.24/src/lib/env.c
+++ vzctl-3.0.24/src/lib/env.c
@@ -280,7 +280,7 @@
int fd, ret;
vps_res *res;
char *argv[] = {"init", "-z", " ", NULL};
- char *envp[] = {"HOME=/", "TERM=linux", NULL};
+ char *envp[] = {"HOME=/root", "TERM=linux", NULL};
res = (vps_res *) data;
memset(&create_param, 0, sizeof(create_param));
diff -u vzctl-3.0.24/debian/changelog vzctl-3.0.24/debian/changelog
--- vzctl-3.0.24/debian/changelog
+++ vzctl-3.0.24/debian/changelog
@@ -1,3 +1,11 @@
+vzctl (3.0.24-7+blueyed1) lucid; urgency=low
+
+ * Fix environment in "vzctl exec" and "vzctl enter" (at least):
+ - set HOME=/root
+ - do not set HISTFILE=/dev/null
+
+ -- Daniel Hahler <[email protected]> Mon, 20 Sep 2010 20:45:41 +0200
+
vzctl (3.0.24-7) unstable; urgency=medium
* No longer ignore errors on startup.
only in patch2:
unchanged:
--- vzctl-3.0.24.orig/src/enter.c
+++ vzctl-3.0.24/src/enter.c
@@ -297,7 +297,6 @@
char *term;
char *arg[] = {NULL, NULL};
char *env[] = {ENV_PATH,
- "HISTFILE=/dev/null",
"USER=root", "HOME=/root", "LOGNAME=root",
NULL, /* for TERM */
NULL};
only in patch2:
unchanged:
--- vzctl-3.0.24.orig/src/lib/exec.c
+++ vzctl-3.0.24/src/lib/exec.c
@@ -37,7 +37,7 @@
#include "script.h"
static volatile sig_atomic_t alarm_flag, child_exited;
-static char *envp_bash[] = {"HOME=/", "TERM=linux", ENV_PATH, NULL};
+static char *envp_bash[] = {"HOME=/root", "TERM=linux", ENV_PATH, NULL};
int vz_env_create_ioctl(vps_handler *h, envid_t veid, int flags);