diff options
author | Richard Maw <richard.maw@codethink.co.uk> | 2011-12-08 08:33:37 +0000 |
---|---|---|
committer | Richard Maw <richard.maw@codethink.co.uk> | 2011-12-08 09:56:29 +0000 |
commit | 007f2e556796f749ab24d79106cd0f1da46b00c3 (patch) | |
tree | e80221342522d9f5b0d7ab361143004461d06965 /morphlib/execute.py | |
parent | 38d6f5c1b3cb4890d105fdda07f87e0f78522e21 (diff) | |
download | morph-007f2e556796f749ab24d79106cd0f1da46b00c3.tar.gz |
Make the install parts of morphs run as sudo
Then fix all the places where this broke things because they didn't have
the required permissions.
This is a potential security risk of course, it would be preferable if
the install commands were run in a fakeroot session and only the final
image building was run as root, but it needs to work first
Diffstat (limited to 'morphlib/execute.py')
-rw-r--r-- | morphlib/execute.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/morphlib/execute.py b/morphlib/execute.py index afad1317..f4cb2b94 100644 --- a/morphlib/execute.py +++ b/morphlib/execute.py @@ -55,7 +55,9 @@ class Execute(object): self.msg('# %s' % command) argv = ['sh', '-c', command] if as_root: - argv = ['sudo'] + argv # pragma: no cover + argv = (['sudo'] + + ["%s=%s" % x for x in self.env.iteritems()] + + argv) # pragma: no cover elif as_fakeroot: argv = ['fakeroot'] + argv logging.debug('run: argv=%s' % repr(argv)) @@ -85,7 +87,9 @@ class Execute(object): ''' if as_root: - argv = ['sudo'] + argv # pragma: no cover + argv = (['sudo'] + + ["%s=%s" % x for x in self.env.iteritems()] + + argv) # pragma: no cover elif as_fakeroot: argv = ['fakeroot'] + argv logging.debug('runv: argv=%s' % repr(argv)) |