Re: Chroot Skriptausführung Ebene
On Fri, 2005-03-04 at 02:13 +0100, Bruno Hertz wrote:
> On Fri, 2005-03-04 at 00:42 +0100, Heike C. Zimmerer wrote:
>
> > Nö. Da steht "\"$@\"".
>
> dchroot -c ia32 -d gmplayer "\"$@\""
>
> Für dchroot:
>
> argv[0] -> dchroot
> argv[1] -> -c
> argv[2] -> ia32
> argv[3] -> -d
> argv[4] -> gmplayer
> argv[5] -> "alle Parameter" ($@ expandiert)
Hüstel, verkehrter Testfall. Korrektur: das Script script.sh enthalte
dchroot -c ia32 -d gmplayer "\"$@\""
und ich rufe 'script.sh a b' auf. Dann hätten wir
Für dchroot:
argv[0] -> dchroot
argv[1] -> -c
argv[2] -> ia32
argv[3] -> -d
argv[4] -> gmplayer
argv[5] -> "a
argv[6] -> b"
denn/und strace gibt
execve("/usr/bin/dchroot", ["dchroot", "-c", "ia32", "-d", "gmplayer", "\"a", "b\""], [/* 14 vars */]) = 0
execve("/bin/su", ["/bin/su", "-p", "root", "gmplayer", "\"a", "b\""], [/* 14 vars */]) = 0
execve("/bin/bash", ["bash", "-c", "gmplayer \"a b\""], [/* 14 vars */]) = 0
execve("gmplayer", ["gmplayer", "a b"], [/* 14 vars */]) = 0
und die letzte Zeile ist die relevante. Die eckigen Klammern bezeichnen den argv
Vektor, und hier ist argv[0]=="gmplayer" und argv[1]=="a b". Oder?
Reply to: