Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Tree: 2525c04034
Fetching contributors…

Cannot retrieve contributors at this time

executable file 50 lines (39 sloc) 1.428 kB
# Copyright (c) 2010-2012 Liraz Siri <>
# This file is part of TKLBAM (TurnKey Linux BAckup and Migration).
# TKLBAM is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 3 of
# the License, or (at your option) any later version.
"""Merge passwd and group files and print uid and gid maps"""
import sys
import userdb
def usage(e=None):
if e:
print >> sys.stderr, "error: " + str(e)
print >> sys.stderr, "Syntax: %s old-passwd old-group new-passwd new-group merged-passwd merged-group" % sys.argv[0]
print >> sys.stderr, __doc__.strip()
def main():
args = sys.argv[1:]
if len(args) != 6:
old_passwd, old_group = args[:2]
new_passwd, new_group = args[2:4]
merged_passwd, merged_group = args[4:6]
def r(path):
return file(path).read()
passwd, group, uidmap, gidmap = userdb.merge(r(old_passwd), r(old_group),
r(new_passwd), r(new_group))
print >> file(merged_passwd, "w"), passwd
print >> file(merged_group, "w"), group
def fmt_map(m):
return ":".join([ "%d,%d" % (key, val) for key,val in m.items() ])
print fmt_map(uidmap)
print fmt_map(gidmap)
if __name__=="__main__":
Jump to Line
Something went wrong with that request. Please try again.