From 2ee4770337d735cc17410be4f4f3f97ee7de6cdc Mon Sep 17 00:00:00 2001 From: "James E. Blair" Date: Wed, 28 Jun 2017 17:20:17 -0700 Subject: [PATCH] Don't automatically mount user home in executor We're starting to treat the work directory as a substitute home directory (we put .ssh/ into it, for example), and we set $HOME to that directory. Complete this process by updating our bwrap passwd entry to point to that as the home directory and stop mounting the real home dir. Change-Id: I0fdb1913634d3902cac58112c5d683f12675c6f7 --- zuul/driver/bubblewrap/__init__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zuul/driver/bubblewrap/__init__.py b/zuul/driver/bubblewrap/__init__.py index 9e9a26e658..95b09e035b 100644 --- a/zuul/driver/bubblewrap/__init__.py +++ b/zuul/driver/bubblewrap/__init__.py @@ -87,7 +87,6 @@ class BubblewrapDriver(Driver, WrapperInterface): '--dir', '{work_dir}', '--bind', '{work_dir}', '{work_dir}', '--dev', '/dev', - '--dir', '{user_home}', '--chdir', '{work_dir}', '--unshare-all', '--share-net', @@ -128,7 +127,9 @@ class BubblewrapDriver(Driver, WrapperInterface): # Need users and groups uid = os.getuid() - passwd = pwd.getpwuid(uid) + passwd = list(pwd.getpwuid(uid)) + # Replace our user's actual home directory with the work dir. + passwd = passwd[:5] + [kwargs['work_dir']] + passwd[6:] passwd_bytes = b':'.join( ['{}'.format(x).encode('utf8') for x in passwd]) (passwd_r, passwd_w) = os.pipe() @@ -150,7 +151,6 @@ class BubblewrapDriver(Driver, WrapperInterface): kwargs['gid'] = gid kwargs['uid_fd'] = passwd_r kwargs['gid_fd'] = group_r - kwargs['user_home'] = passwd.pw_dir command = [x.format(**kwargs) for x in bwrap_command] self.log.debug("Bubblewrap command: %s",