Bugzilla – Bug 628
(chroot) can't solve error message: sudo: unknown uid 1000: who are you?
Last modified: 2013-12-14 11:37:13 MST
Hi there, Problem Description: ===================== * Sudo v1.8.8. FreeBSD 9.1-RELEASE operating system. * Full FreeBSD base image inside a chroot folder. * Copied over these files: $ cp -f "/etc/passwd" "/chroot/etc/passwd" $ cp -f "/etc/master.passwd" "/chroot/etc/master.passwd" $ cp -f "/etc/pwd.db" "/chroot/etc/pwd.db" $ cp -f "/etc/group" "/chroot/etc/group" * Chrooting, drop down to be a regular user $ chroot -u user -g wheel /chroot * "id" command recognises the user name inside the chroot. $ id -a uid=1000(user) gid=1000(admin) egid=0(wheel) groups=0(wheel),50(ftp) * However "sudo <cmd>" does not know my username, and errors out $ sudo ls sudo: unknown uid 1000: who are you? * Even errors out for the informational subcommands $ sudo --list sudo: unknown uid 1000: who are you? $ sudo --version sudo: unknown uid 1000: who are you? Not sure at this point what else could be missing inside the chroot. Sudo seems to need something else to be present. Could not find answers from the man page. No luck with google either. * I can see "sudo.c" on the net. There are only a very few places where this check can be erroring-out. (although that is not the latest version of sudo). http://www.opensource.apple.com/source/sudo/sudo-46/src/sudo.c * I can recompile sudo with arbitrary modifications. For example to do extra debugging. With the src in the build folder of my FreeBSD ports tree. Any help welcome / appreciated.
You are missing /chroot/etc/spwd.db". You do not really need /chroot/etc/master.passwd" as nothing should read that directly.
A-ha! "/etc/spwd.db" was missing from that list. Didn't know about that one. sudo calls getpwuid(); in a single place to display that error message. "man getpwuid" FILES showed the omitted password db file. I added the missing file along with the 4 previous already. Problem went away. All resolved. Sorry for bothering you guys about this.