diff --git a/image_creator/bundle_volume.py b/image_creator/bundle_volume.py
index a5cc9d79f84f9d1bf84934621462492565f27394..a6fc27a90d21dc329658cf7fb212212b66bd9f0f 100644
--- a/image_creator/bundle_volume.py
+++ b/image_creator/bundle_volume.py
@@ -401,9 +401,21 @@ class BundleVolume(object):
for excl in excluded:
dirname = os.path.dirname(excl)
stat = os.stat(dirname)
- os.mkdir(target + excl, stat.st_mode)
+ os.mkdir(target + excl)
+ os.chmod(target + excl, stat.st_mode)
os.chown(target + excl, stat.st_uid, stat.st_gid)
+ # /tmp and /var/tmp are special cases. We exclude then even if
+ # they aren't mountpoints. Restore their permissions.
+ for excl in ('/tmp', '/var/tmp'):
+ if self._is_mpoint(excl):
+ os.chmod(target + excl, 041777)
+ os.chown(target + excl, 0, 0)
+ else:
+ stat = os.stat(excl)
+ os.chmod(target + excl, stat.st_mode)
+ os.chown(target + excl, stat.st_uid, stat.st_gid)
+
# We need to replace the old UUID referencies with the new
# ones in grub configuration files and /etc/fstab for file
# systems that have been recreated.