From: Michael Tremer Date: Mon, 29 Aug 2011 09:38:16 +0000 (+0200) Subject: Remove username guessing from outside the chroot. X-Git-Tag: 0.9.9~22 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b41705e49a7512a52aab0a725927423179047320;p=pakfire.git Remove username guessing from outside the chroot. --- diff --git a/pakfire/builder.py b/pakfire/builder.py index 1cc433caa..28c6fb139 100644 --- a/pakfire/builder.py +++ b/pakfire/builder.py @@ -229,52 +229,6 @@ class BuildEnviron(object): self.copyout(file_in, file_out) - def get_pwuid(self, uid): - users = {} - - f = open(self.chrootPath("/etc/passwd")) - for line in f.readlines(): - m = re.match(r"^([a-z][a-z0-9_\-]{,30}):x:(\d+):(\d+):(.*):(.*)$", line) - if not m: - continue - - item = { - "name" : m.group(1), - "uid" : int(m.group(2)), - "gid" : int(m.group(3)), - "home" : m.group(4), - "shell" : m.group(5), - } - - assert not users.has_key(item["uid"]) - users[item["uid"]] = item - - f.close() - - return users.get(uid, None) - - def get_grgid(self, gid): - groups = {} - - f = open(self.chrootPath("/etc/group")) - for line in f.readlines(): - m = re.match(r"^([a-z][a-z0-9_\-]{,30}):x:(\d+):(.*)$", line) - if not m: - continue - - item = { - "name" : m.group(1), - "gid" : int(m.group(2)), - } - - # XXX re-enable later - #assert not groups.has_key(item["gid"]) - groups[item["gid"]] = item - - f.close() - - return groups.get(gid, None) - def extract(self, requires=None, build_deps=True): """ Gets a dependency set and extracts all packages diff --git a/pakfire/packages/packager.py b/pakfire/packages/packager.py index eeb44684d..ba8017edb 100644 --- a/pakfire/packages/packager.py +++ b/pakfire/packages/packager.py @@ -132,36 +132,13 @@ class Packager(object): datafile = InnerTarFile(datafile) for m in datafile.getmembers(): - # XXX need to check what to do with UID/GID - logging.info(" %s %-8s %-8s %s %6s %s" % \ + logging.debug(" %s %-8s %-8s %s %6s %s" % \ (tarfile.filemode(m.mode), m.uname, m.gname, "%d-%02d-%02d %02d:%02d:%02d" % time.localtime(m.mtime)[:6], util.format_size(m.size), m.name)) - - info = m.get_info(tarfile.ENCODING, "strict") - - # Update uname. - if hasattr(self, "builder"): - pwuid = self.builder.get_pwuid(info["uid"]) - if not pwuid: - logging.warning("UID '%d' not found. Using root.") - info["uname"] = "root" - else: - info["uname"] = pwuid["name"] - - # Update gname. - grgid = self.builder.get_grgid(info["gid"]) - if not grgid: - logging.warning("GID '%d' not found. Using root.") - info["gname"] = "root" - else: - info["gname"] = grgid["name"] - else: - # Files in the source packages always belong to root. - info["uname"] = info["gname"] = "root" f.write("%(name)-40s %(type)1s %(size)-10d %(uname)-10s %(gname)-10s %(mode)-6d %(mtime)-12d" \ - % info) + % m.get_info(tarfile.ENCODING, "strict")) # Calculate SHA512 hash of regular files. if m.isreg():