[systemd-devel] systemd-run checks path on host before running on container

Zbigniew Jędrzejewski-Szmek zbyszek at in.waw.pl
Sat Nov 22 17:40:29 PST 2014


On Sun, Nov 23, 2014 at 12:14:32AM +0100, Zbigniew Jędrzejewski-Szmek wrote:
> On Sat, Nov 22, 2014 at 02:47:49PM +0100, David Herrmann wrote:
> > Hi
> > 
> > On Fri, Nov 21, 2014 at 5:00 AM, Peter Hutterer
> > <peter.hutterer at who-t.net> wrote:
> > > I was playing around with systemd-nspawn and systemd-run. The latter doesn't
> > > seem to let me run a command that solely exists on the container.
> > > simple way of reproducing: drop a file foo into the container, then on the
> > > host run
> > >
> > >     systemd-run -M mycontainer /path/to/foo
> > >
> > > I expected this to run foo on the container. It does, but checks for the
> > > command to exist locally first and fails. A simple touch /path/to/foo; chmod
> > > +x $_ is sufficient to bypass that check, but that feels somewhat odd.
> I pushed a partial fix which makes find_binary() ignore errors for
> non-local absolute paths. Something which checks the path remotely
> might be nicer, but I'm not sure if it's worth the hassle.

Looking at this again, I think we should resolve the paths remotely.
We could redefine the dbus call to do $PATH resolution on paths without any
slashes, or we could a new call. I like redefining the existing one more.
I don't think anyone will care.

See also https://bugs.freedesktop.org/show_bug.cgi?id=86555, which is a similar
problem with systemd-nspawn.

Zbyszek


More information about the systemd-devel mailing list