strace'ing the problem revealed the reason for the cryptic error:
# strace -u mast sudo ls
/.../
pipe([4, 5]) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0x2b34bf991b80) = 15504
close(4) = 0
fcntl(5, F_GETFL) = 0x1 (flags O_WRONLY)
fstat(5, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x2b34bf029000
lseek(5, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek)
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=1892, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=1892, ...}) = 0
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=1892, ...}) = 0
write(5, "To: root\nFrom: mast\nSubject: ***"..., 176) = -1 EPIPE (Broken pipe)
--- SIGPIPE (Broken pipe) @ 0 (0) ---
+++ killed by SIGPIPE +++
One can see here that the broken pipe comes from trying to pipe a mail
to a subprocess. Tracing that one too reveals:
dup2(4, 0) = 0
close(4) = 0
close(5) = 0
close(3) = 0
setgid(1021) = 0
setreuid(1021, 1021) = 0
execve("/usr/sbin/sendmail", ["/usr/sbin/sendmail", "-t"], [/* 4 vars */]) = -1
ENOENT (No such file or directory)
exit_group(127) = ?
I.e. /usr/sbin/sendmail doesn't exist. (The error that sudo tried to
mail was that my user didn't exist in /etc/sudoers.)
Note that this has nothing to do with the chroot environment as I
suspected, but rather that sudo doesn't gracefully handle the case when
/usr/sbin/sendmail doesn't exist. I was able to reproduce the same
problem outside the chroot.
** Summary changed:
- Cryptic error from sudo in chroot environment
+ Cryptic error from sudo when /usr/sbin/sendmail doesn't exist
--
Cryptic error from sudo when /usr/sbin/sendmail doesn't exist
https://bugs.launchpad.net/bugs/193516
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs