#!/usr/bin/env nix-shell #!nix-shell -i python3 -p python36 import pwd import grp import os import sys if len(sys.argv) != 3: print(f"USAGE: {sys.argv[0]} TARGET OFFSET") sys.exit(1) target = sys.argv[1] offset = int(sys.argv[2]) def adjust(path): stat = os.stat(path, follow_symlinks=False) uid = stat.st_uid gid = stat.st_gid print(f"{path} {uid}:{gid} => {uid + offset}:{gid + offset}") os.chown(path, uid + offset, gid + offset, follow_symlinks=False) for root, dirs, files in os.walk(target): for d in dirs: adjust(root + os.sep + d) for f in files: adjust(root + os.sep + f)