[buildd-tools-devel] Bug#566879: Bug#566879: dchroot: does not work as root

Aurelien Jarno aurel32 at debian.org
Tue Jan 26 16:38:16 UTC 2010


On Tue, Jan 26, 2010 at 11:43:53AM +0000, Roger Leigh wrote:
> On Tue, Jan 26, 2010 at 01:35:50AM +0100, Aurelien Jarno wrote:
> > On Tue, Jan 26, 2010 at 12:22:29AM +0000, Roger Leigh wrote:
> > > On Mon, Jan 25, 2010 at 07:44:05PM +0100, Aurelien Jarno wrote:
> > > > Package: dchroot
> > > > Version: 1.4.0-1
> > > > Severity: important
> > > > 
> > > > Since the upgrade of dchroot to version 1.4.0-1, it doesn't work as root
> > > > anymore:
> > > > 
> > > > | # dchroot
> > > > | E: Authentication failed: Operation not supported
> > > > | #
> > > > 
> > > > dchroot still works as a user, and schroot still works for both modes.
> > > 
> > > Were you previously using DSA dchroot or dchroot provided by schroot?
> > > If you were using DSA dchroot, have you tried the dchroot-dsa package?
> > > If you were using DSA dchroot, have you tried the dchroot-dsa package?
> > > [dchroot.conf format and command-line syntax differ slightly]
> > 
> > I am using dchroot from the schroot source package.
> > 
> > > There have been no dchroot changes TTBOMK since the previous stable
> > > 1.2.x releases (it's just an schroot API wrapper).
> > 
> > 1.2.x works fine with the same configuration.
> > 
> > > I'll take a look as soon as I have some free time.  If you also use
> > > schroot, could you possibly try renaming dchroot.conf temporarily
> > > and dchroot should then use schroot.conf instead.  Does this now
> > > work correctly?  [If you don't have a schroot.conf, 'dchroot --config'
> > > will generate one for you]
> > 
> > I don't have dchroot.conf, I am using schroot.conf for both schroot and
> > dchroot.
> 
> Does the same occur if you run schroot as root?

No schroot as root works fine.

> Could you please try running with '-v --debug=notice' and let me
> have the log?  This should hopefully narrow down the cause.  If

Please find a log for dchroot and one for schroot attached.

> you have gdb and schroot-debug installed, you could run it in gdb
> with 'catch throw' and then get a backtrace which should identify
> exactly where it's failing.

I have installed it.

> I think it's in sbuild::auth_null::authenticate:
> 
>     case STATUS_USER:
>       throw error(AUTHENTICATION, strerror(ENOTSUP));
>       break;

Bingo!!!

| (gdb) bt
| #0  0x00007fcdbea39e60 in __cxa_throw () from /usr/lib/libstdc++.so.6
| #1  0x000000000049a972 in sbuild::auth_null::authenticate (this=<value optimized out>, auth_status=<value optimized out>) at ../../../sbuild/sbuild-auth-null.cc:103
| #2  0x000000000047bb02 in sbuild::session::run (this=0x24f2370) at ../../../sbuild/sbuild-session.cc:503
| #3  0x0000000000431560 in schroot::main_base::run_impl (this=0x7fffa20f6e10) at ../../../../bin/schroot/schroot-main-base.cc:311
| #4  0x000000000042af47 in schroot_base::main::run (this=0x7fffa20f6e10, argc=<value optimized out>, argv=0x7fffa20f7018) at ../../../../bin/schroot-base/schroot-base-main.cc:115
| #5  0x000000000041f969 in run<dchroot::options, dchroot::main> (argc=1, argv=0x7fffa20f7018) at ../../../../bin/schroot-base/schroot-base-run.h:69
| #6  main (argc=1, argv=0x7fffa20f7018) at ../../../../bin/dchroot/dchroot.cc:43


> but it would be useful to see the call site.  dchroot uses a null
> authentication handler which doesn't allow user switching.  It may
> need a special case to handle root, but this should already be being
> handled by the higher-level session code which skips authentication
> for root (the handler shouldn't be being called in this manner, which
> is why it's unsupported and throwing the exception).
> 

BTW, I am still using dchroot because schroot is missing the possibility
to run a command (it only allows an executable and its arguments). Is it
planned to add this feature to schroot?

-- 
Aurelien Jarno	                        GPG: 1024D/F1BCDB73
aurelien at aurel32.net                 http://www.aurel32.net





More information about the Buildd-tools-devel mailing list