+ def _do_mount(self, readonly):
+ """Mount partitions in the correct order"""
+
+ critical_mpoints = ('/', '/etc', '/root', '/home', '/var')
+
+ mopts = 'ro' if readonly else 'rw'
+ for mp, dev in self._mountpoints():
+ try:
+ self.image.g.mount_options(mopts, dev, mp)
+ except RuntimeError as msg:
+ if mp in critical_mpoints:
+ self.out.warn('unable to mount %s. Reason: %s' % (mp, msg))
+ return False
+ else:
+ self.out.warn('%s (ignored)' % msg)
+
+ return True
+
+ @sysprep('Removing files under /var/cache')
+ def cleanup_cache(self):
+ """Remove all regular files under /var/cache"""
+
+ self._foreach_file('/var/cache', self.image.g.rm, ftype='r')
+
+ @sysprep('Removing files under /tmp and /var/tmp')
+ def cleanup_tmp(self):
+ """Remove all files under /tmp and /var/tmp"""
+
+ self._foreach_file('/tmp', self.image.g.rm_rf, maxdepth=1)
+ self._foreach_file('/var/tmp', self.image.g.rm_rf, maxdepth=1)
+
+ @sysprep('Emptying all files under /var/log')
+ def cleanup_log(self):
+ """Empty all files under /var/log"""
+
+ self._foreach_file('/var/log', self.image.g.truncate, ftype='r')
+
+ @sysprep('Removing files under /var/mail & /var/spool/mail', enabled=False)
+ def cleanup_mail(self):
+ """Remove all files under /var/mail and /var/spool/mail"""
+
+ if self.image.g.is_dir('/var/spool/mail'):
+ self._foreach_file('/var/spool/mail', self.image.g.rm_rf,
+ maxdepth=1)
+
+ self._foreach_file('/var/mail', self.image.g.rm_rf, maxdepth=1)
+
+ @sysprep('Removing sensitive user data')
+ def cleanup_userdata(self):
+ """Delete sensitive userdata"""
+
+ homedirs = ['/root']
+ if self.image.g.is_dir('/home/'):
+ homedirs += self._ls('/home/')