Quoting Christian Seiler (christ...@iwakd.de): > If getpwuid() fails and also the fallback of spawning of a 'getent' > process, and the user specified no command to execute, default to > /bin/sh and only fail if even that is not available. This should ensure > that unless the container is *really* weird, no matter what, the user > should always end up with a shell when calling lxc-attach with no > further arguments. > > Signed-off-by: Christian Seiler <christ...@iwakd.de>
Acked-by: Serge E. Hallyn <serge.hal...@ubuntu.com> > --- > src/lxc/lxc_attach.c | 16 +++++++++++----- > 1 file changed, 11 insertions(+), 5 deletions(-) > > diff --git a/src/lxc/lxc_attach.c b/src/lxc/lxc_attach.c > index c129eb0..711e1de 100644 > --- a/src/lxc/lxc_attach.c > +++ b/src/lxc/lxc_attach.c > @@ -452,15 +452,21 @@ int main(int argc, char *argv[]) > else > user_shell = passwd->pw_shell; > > - if (!user_shell) { > - SYSERROR("failed to get passwd " \ > - "entry for uid '%d'", uid); > - return -1; > + if (user_shell) { > + char *const args[] = { > + user_shell, > + NULL, > + }; > + > + (void) execvp(args[0], args); > } > > + /* executed if either no passwd entry or execvp fails, > + * we will fall back on /bin/sh as a default shell > + */ > { > char *const args[] = { > - user_shell, > + "/bin/sh", > NULL, > }; > > -- > 1.7.10.4 > ------------------------------------------------------------------------------ Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the endpoint security space. For insight on selecting the right partner to tackle endpoint security challenges, access the full report. http://p.sf.net/sfu/symantec-dev2dev _______________________________________________ Lxc-devel mailing list Lxc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lxc-devel