i should have run my test first. this code segfaults: #include <sys/types.h> #include <pwd.h> main() { struct passwd *p; chroot("/tmp"); chdir("/"); p = getpwuid(666); if (p) { printf("%s\n", p->pw_name); } exit(0); } so i guess that rsync can't help in any way. time to start looking at libc...