import pwd import grp import os import multiprocessing # CHANGE ME USERNAME = None def check_permission(path): username = USERNAME pw_entry = pwd.getpwnam(username) gr_entry = grp.getgrgid(pw_entry.pw_gid) uid = pw_entry.pw_uid primary_gid = gr_entry.gr_gid secondary_gids = os.getgrouplist(username, primary_gid) print((path, (os.getgid(), os.getuid(), os.getgroups()))) os.setgid(primary_gid) os.setgroups(secondary_gids) os.setuid(uid) def test_users_have_read_only_access_to_logs(): files_to_check = 'ABCDEFGHIJKLMN' with multiprocessing.Pool(processes=5) as p: p.map(check_permission, files_to_check) if __name__ == '__main__': test_users_have_read_only_access_to_logs()