blob: 52da512126d31b6d55d334f228e10da301dad38d [file] [log] [blame]
#!/usr/bin/python
#
# Copyright 2017 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
"""
Recursively shifts the UID/GIDs of the target directory for user namespacing.
"""
import argparse
import grp
import pwd
import os
import sys
def main():
parser = argparse.ArgumentParser()
parser.add_argument('target', help='recursively shifts UIDs/GIDs of target')
args = parser.parse_args()
for root, dirs, files in os.walk(args.target):
for f in files:
path = os.path.join(root, f)
stat_info = os.lstat(path)
if (stat_info.st_uid < 655360):
os.lchown(path, stat_info.st_uid + 655360, stat_info.st_gid + 655360)
for d in dirs:
path = os.path.join(root, d)
stat_info = os.lstat(path)
if (stat_info.st_uid < 655360):
os.lchown(path, stat_info.st_uid + 655360, stat_info.st_gid + 655360)
if __name__ == '__main__':
main()