Subject: with dash as default shell, x2goagent.options are not being parsed correctly

From: Stefan Baur <[email-masked]>
Date: Mon, 10 Dec 2018 12:00:56 +0100

package: x2goserver-x2goagent
version: 4.1.0.3

According to a user, when dash is set as the default shell,
x2goagent.options are not being parsed correctly, as dash does not
understand the "+=" syntax used in this file to concatenate various
options.  The particular piece of code that sources/runs this file
should be calling bash explicitly to avoid this.

-Stefan

-- 
BAUR-ITCS UG (haftungsbeschränkt)
Geschäftsführer: Stefan Baur
Eichenäckerweg 10, 89081 Ulm | Registergericht Ulm, HRB 724364
Fon/Fax 0731 40 34 66-36/-35 | USt-IdNr.: DE268653243

---

From: Mike Gabriel <[email-masked]>
Date: Mon, 10 Dec 2018 14:29:54 +0000

Hi Stefan,

> should be calling bash explicitly to avoid this.

The x2goagent.options file is sourced by x2gostartagent and that uses  
/bin/bash as shebang.

I am inclined to close this bug unless you have more info. Even if you  
user as /bin/dash as default shell, the x2goagent.options file should  
be sourced by bash.

MIke
-- 

DAS-NETZWERKTEAM
mike gabriel, herweg 7, 24357 fleckeby
mobile: +49 (1520) 1976 148
landline: +49 (4354) 8390 139

GnuPG Fingerprint: 9BFB AEE8 6C0A A5FF BF22  0782 9AF4 6B30 2577 1B31
mail: [email-masked], http://das-netzwerkteam.de

---

From: Stefan Baur <[email-masked]>
Date: Mon, 10 Dec 2018 15:32:09 +0100

Am 10.12.18 um 15:29 schrieb Mike Gabriel:
> user as /bin/dash as default shell, the x2goagent.options file should be
> sourced by bash.

Interesting.  Please keep it open for now; I will check back with the
affected user.  For some reason, their session wasn't picking up the
x2goagent.options, and they had /bin/dash as their default shell.

Kind Regards,
Stefan Baur

---

From: Stefan Baur <[email-masked]>
Date: Mon, 10 Dec 2018 20:32:14 +0100

> x2goagent.options, and they had /bin/dash as their default shell.

The user says that not the individual accounts' shell was set to
/bin/dash, but the system-wide default shell.
And changing it to /bin/bash fixed the issue for them.
Grepping through the X2Go code, I found several instances where /bin/sh
is used (/usr/sbin/x2golistsessions_root, /usr/sbin/x2gocleansessions,
/usr/bin/x2gopath, /usr/bin/x2gobasepath, /etc/init.d/x2goserver,
/usr/bin/x2goprint).  There is also a match in the /usr/bin/x2goagent
binary.

Could it be that x2gostartagent itself is being called in a way that
skips the shebang line? (e.g. "/bin/sh -c /usr/bin/x2gostartagent")

Kind Regards,
Stefan Baur

---

From: Stefan Baur <[email-masked]>
Date: Thu, 13 Dec 2018 15:27:53 +0100

> And changing it to /bin/bash fixed the issue for them.

Unable to reproduce the issue on a fresh Debian 8 install, also unable
to reproduce the issue after upgrading to Debian 9.  Currently
investigating what might be different on the user's systems.

-Stefan

---

From: Mike Gabriel <[email-masked]>
Date: Thu, 13 Dec 2018 19:29:35 +0000

Hi Stefan,

> skips the shebang line? (e.g. "/bin/sh -c /usr/bin/x2gostartagent")

Ouch! Good point. We should look at x2goclient debugging output and check how X2Go Client launches x2gostartagent. IIRC, it use such a call as you mentioned above....

Mike

-- 
Sent from my Jolla