diff -Nru ols-vms-1.1.0/debian/bzr-builder.manifest ols-vms-1.1.0/debian/bzr-builder.manifest --- ols-vms-1.1.0/debian/bzr-builder.manifest 2016-07-26 06:56:09.000000000 +0000 +++ ols-vms-1.1.0/debian/bzr-builder.manifest 2016-07-27 15:32:00.000000000 +0000 @@ -1,2 +1,2 @@ -# bzr-builder format 0.3 deb-version {debupstream}-0~222 -lp:ols-vms revid:vila+ols@canonical.com-20160726065103-vy4f85bhd6p8etcv +# bzr-builder format 0.3 deb-version {debupstream}-0~223 +lp:ols-vms revid:vila+ols@canonical.com-20160727152041-yn78jh0gmieqjrw4 diff -Nru ols-vms-1.1.0/debian/changelog ols-vms-1.1.0/debian/changelog --- ols-vms-1.1.0/debian/changelog 2016-07-26 06:56:09.000000000 +0000 +++ ols-vms-1.1.0/debian/changelog 2016-07-27 15:32:00.000000000 +0000 @@ -1,8 +1,8 @@ -ols-vms (1.1.0-0~222~ubuntu15.04.1) vivid; urgency=low +ols-vms (1.1.0-0~223~ubuntu15.04.1) vivid; urgency=low * Auto build. - -- Vincent Ladeuil Tue, 26 Jul 2016 06:56:09 +0000 + -- Vincent Ladeuil Wed, 27 Jul 2016 15:32:00 +0000 ols-vms (1.1.0) unstable; urgency=medium diff -Nru ols-vms-1.1.0/NEWS.rst ols-vms-1.1.0/NEWS.rst --- ols-vms-1.1.0/NEWS.rst 2016-07-26 06:56:09.000000000 +0000 +++ ols-vms-1.1.0/NEWS.rst 2016-07-27 15:32:00.000000000 +0000 @@ -21,6 +21,9 @@ * Add 'lxc.nesting' option to help support nested containers. +* Work around sudo access in lxc when using home bound mounts, the user + receives a password less sudo access in the guest instead. + 1.1.0 ===== diff -Nru ols-vms-1.1.0/olsvms/vms/lxc.py ols-vms-1.1.0/olsvms/vms/lxc.py --- ols-vms-1.1.0/olsvms/vms/lxc.py 2016-07-26 06:56:09.000000000 +0000 +++ ols-vms-1.1.0/olsvms/vms/lxc.py 2016-07-27 15:32:00.000000000 +0000 @@ -16,6 +16,7 @@ from __future__ import unicode_literals import logging import os +import tempfile from olsconfig import options from olsvms import ( @@ -150,6 +151,21 @@ if self.conf.get('vm.bind_home'): lxc_create.extend(['--bindhome', self.conf.get('vm.user')]) subprocesses.run(lxc_create) + if self.conf.get('vm.bind_home'): + # FIXME: Something wrong with sudo access ols-vms shell. In the + # mean time, give password-less sudo access. -- vila 2016-07-27 + tmp_sudo = tempfile.NamedTemporaryFile(delete=False, mode='w') + tmp_sudo.write('{} ALL = (root) NOPASSWD:ALL'.format( + self.conf.get('vm.user'))) + tmp_sudo.close() + sudo_path = os.path.join( + self._lxc_base_path, + 'rootfs/etc/sudoers.d/{}'.format(self.conf.get('vm.user'))) + cp_sudo = ['sudo', 'cp', tmp_sudo.name, sudo_path] + try: + subprocesses.run(cp_sudo) + finally: + os.remove(tmp_sudo.name) self.copy_seed_files() logger.info('Starting lxc container to finish setup...') # Now we add the cloud-init data seed and do lxc-start to trigger all