Discussion:
Probleme mit AT
Dr. Juergen Vollmer
2014-09-28 12:26:25 UTC
Permalink
Hallo allerseits,

nach dem Update der BASH (due to shellshock) macht "at" Probleme:

echo abc | at now

erzeugt eine Datei unter /var/spool/atjobs, die folegnde Zeile enthält:

BASH_FUNC_mc()=\(\)\ {\ \ .\ /usr/share/mc/mc-wrapper.sh"
"}; export BASH_FUNC_mc()

da nun nach der schliessenden } Klammer noch Code seht, wirft die BASH einen Fehler und das Kommando "echo abc" wird
nicht ausgeführt.

Meine Frage: wo kommt diese Definition von BASH_FUNC_mc her?

Bye
Jürgen
--
Dr.rer.nat. Jürgen Vollmer, Am Rennbuckel 21, D-76185 Karlsruhe
Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2
***@informatik-vollmer.de
www.informatik-vollmer.de
-------------------------------------------------------------------------------
Diese EMail ist elektronisch mittels GPG / PGP signiert.
Diese elektronische Unterschrift ist in einem EMail-Anhang enthalten.
Leider kann die Signatur ohne die Installation entsprechender Programme
weder geprüft noch angezeigt werden.
Mehr dazu unter: http://www.gnupg.org oder auch http://www.pgpi.org
-------------------------------------------------------------------------------
Marcus Meissner
2014-09-28 13:05:18 UTC
Permalink
Post by Dr. Juergen Vollmer
Hallo allerseits,
echo abc | at now
BASH_FUNC_mc()=\(\)\ {\ \ .\ /usr/share/mc/mc-wrapper.sh"
"}; export BASH_FUNC_mc()
da nun nach der schliessenden } Klammer noch Code seht, wirft die BASH einen Fehler und das Kommando "echo abc" wird
nicht ausgeführt.
Meine Frage: wo kommt diese Definition von BASH_FUNC_mc her?
von /etc/profile.d/mc.sh

Das macht:
mc ()
{
. /usr/share/mc/bin/mc-wrapper.sh
}
if [ -n "$BASH_VERSION" ]
then
export -f mc
fi

und das export -f exportiert die funktion "mc", jetzt unter dem Namen BASH_FUNC_mc().

Was jetzt spannend ist, wieso obiges abc nicht mehr auftaucht.

Ciao, marcus
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+***@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+***@opensuse.org
Dr. Juergen Vollmer
2014-09-28 14:15:49 UTC
Permalink
Hi,
Post by Marcus Meissner
Post by Dr. Juergen Vollmer
Hallo allerseits,
echo abc | at now
BASH_FUNC_mc()=\(\)\ {\ \ .\ /usr/share/mc/mc-wrapper.sh"
"}; export BASH_FUNC_mc()
da nun nach der schliessenden } Klammer noch Code seht, wirft die BASH einen Fehler und das Kommando "echo abc" wird
nicht ausgeführt.
Meine Frage: wo kommt diese Definition von BASH_FUNC_mc her?
von /etc/profile.d/mc.sh
mc ()
{
. /usr/share/mc/bin/mc-wrapper.sh
}
if [ -n "$BASH_VERSION" ]
then
export -f mc
fi
und das export -f exportiert die funktion "mc", jetzt unter dem Namen BASH_FUNC_mc().
aber wo kommt der ; her und wies so steht das Ganze dann in einer Zeile?
Post by Marcus Meissner
Was jetzt spannend ist, wieso obiges abc nicht mehr auftaucht.
steht in der Datei drin, aber der at-job wird nicht ausgeführt da die Definition der Bashfunktion syntaktisch falsch ist.
Daher wird das Script nicht ausgeführt.

Wer baut eigentlich das Scipt zusammen, das mit at ausgeführt werden soll. Hier liegt nämlich der Fehler.
Richtig müsste es wohl so aussehen:

BASH_FUNC_mc()=\(\)\ {\ \ .\ /usr/share/mc/mc-wrapper.sh"
"}
export BASH_FUNC_mc()


also ohne ; und das export auf einer separten Zeile

Bye
Jürgen
--
Dr.rer.nat. Jürgen Vollmer, Am Rennbuckel 21, D-76185 Karlsruhe
Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2
***@informatik-vollmer.de
www.informatik-vollmer.de
-------------------------------------------------------------------------------
Diese EMail ist elektronisch mittels GPG / PGP signiert.
Diese elektronische Unterschrift ist in einem EMail-Anhang enthalten.
Leider kann die Signatur ohne die Installation entsprechender Programme
weder geprüft noch angezeigt werden.
Mehr dazu unter: http://www.gnupg.org oder auch http://www.pgpi.org
-------------------------------------------------------------------------------
Marcus Meissner
2014-09-29 08:51:13 UTC
Permalink
Post by Dr. Juergen Vollmer
Hi,
Post by Marcus Meissner
Post by Dr. Juergen Vollmer
Hallo allerseits,
echo abc | at now
BASH_FUNC_mc()=\(\)\ {\ \ .\ /usr/share/mc/mc-wrapper.sh"
"}; export BASH_FUNC_mc()
da nun nach der schliessenden } Klammer noch Code seht, wirft die BASH einen Fehler und das Kommando "echo abc" wird
nicht ausgeführt.
Meine Frage: wo kommt diese Definition von BASH_FUNC_mc her?
von /etc/profile.d/mc.sh
mc ()
{
. /usr/share/mc/bin/mc-wrapper.sh
}
if [ -n "$BASH_VERSION" ]
then
export -f mc
fi
und das export -f exportiert die funktion "mc", jetzt unter dem Namen BASH_FUNC_mc().
aber wo kommt der ; her und wies so steht das Ganze dann in einer Zeile?
Post by Marcus Meissner
Was jetzt spannend ist, wieso obiges abc nicht mehr auftaucht.
steht in der Datei drin, aber der at-job wird nicht ausgeführt da die Definition der Bashfunktion syntaktisch falsch ist.
Daher wird das Script nicht ausgeführt.
Wer baut eigentlich das Scipt zusammen, das mit at ausgeführt werden soll. Hier liegt nämlich der Fehler.
BASH_FUNC_mc()=\(\)\ {\ \ .\ /usr/share/mc/mc-wrapper.sh"
"}
export BASH_FUNC_mc()
also ohne ; und das export auf einer separten Zeile
Zusammen gebaut wird das ganze wohl vom "at" Kommando.

Geht es denn wirklich nicht? Die Syntax sollte so stimmen, das ; separiert
das = vom export Kommando genau wie ein Zeilenumbruch.

Ciao, Marcus
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+***@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+***@opensuse.org
Klaus Schneider-Grosch
2014-09-30 08:53:59 UTC
Permalink
Post by Marcus Meissner
Post by Dr. Juergen Vollmer
Hi,
[...]
Post by Marcus Meissner
Post by Dr. Juergen Vollmer
Post by Marcus Meissner
und das export -f exportiert die funktion "mc", jetzt unter dem Namen
BASH_FUNC_mc().>
aber wo kommt der ; her und wies so steht das Ganze dann in einer
Zeile?>
Post by Marcus Meissner
Was jetzt spannend ist, wieso obiges abc nicht mehr auftaucht.
steht in der Datei drin, aber der at-job wird nicht ausgeführt da die
Definition der Bashfunktion syntaktisch falsch ist. Daher wird das Script
nicht ausgeführt.
Wer baut eigentlich das Scipt zusammen, das mit at ausgeführt werden soll.
Hier liegt nämlich der Fehler.>
BASH_FUNC_mc()=\(\)\ {\ \ .\ /usr/share/mc/mc-wrapper.sh"
"}
export BASH_FUNC_mc()
also ohne ; und das export auf einer separten Zeile
Zusammen gebaut wird das ganze wohl vom "at" Kommando.
Geht es denn wirklich nicht? Die Syntax sollte so stimmen, das ; separiert
das = vom export Kommando genau wie ein Zeilenumbruch.
Ciao, Marcus
Hallo,

bei mir klappt es auch nicht, der an 'at' übergebene Befehl oder Script wird
seit dem Update nicht mehr ausgeführt. Hier die Fehlermeldung:

sh: line 63: syntax error near unexpected token `$'=\\(\\)\\ {\\ \\ .\\
/usr/share/mc/mc-wrapper.sh"\n"}''
sh: line 63: `"}; export BASH_FUNC_mc()'

Ich könnte das zwar nicht so auseinandernehmen wie Marcus, wäre jedoch bereit,
einen Bugreport zu schreiben.

Viele Grüße,
Klaus
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+***@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+***@opensuse.org
Dr. Juergen Vollmer
2014-09-30 14:52:47 UTC
Permalink
Hallo Klaus,
Post by Klaus Schneider-Grosch
Post by Marcus Meissner
Post by Dr. Juergen Vollmer
Hi,
[...]
Post by Marcus Meissner
Post by Dr. Juergen Vollmer
Post by Marcus Meissner
und das export -f exportiert die funktion "mc", jetzt unter dem Namen
BASH_FUNC_mc().>
aber wo kommt der ; her und wies so steht das Ganze dann in einer
Zeile?>
Post by Marcus Meissner
Was jetzt spannend ist, wieso obiges abc nicht mehr auftaucht.
steht in der Datei drin, aber der at-job wird nicht ausgeführt da die
Definition der Bashfunktion syntaktisch falsch ist. Daher wird das Script
nicht ausgeführt.
Wer baut eigentlich das Scipt zusammen, das mit at ausgeführt werden soll.
Hier liegt nämlich der Fehler.>
BASH_FUNC_mc()=\(\)\ {\ \ .\ /usr/share/mc/mc-wrapper.sh"
"}
export BASH_FUNC_mc()
also ohne ; und das export auf einer separten Zeile
Zusammen gebaut wird das ganze wohl vom "at" Kommando.
Geht es denn wirklich nicht? Die Syntax sollte so stimmen, das ; separiert
das = vom export Kommando genau wie ein Zeilenumbruch.
Ciao, Marcus
Hallo,
bei mir klappt es auch nicht, der an 'at' übergebene Befehl oder Script wird
sh: line 63: syntax error near unexpected token `$'=\\(\\)\\ {\\ \\ .\\
/usr/share/mc/mc-wrapper.sh"\n"}''
sh: line 63: `"}; export BASH_FUNC_mc()'
Ich könnte das zwar nicht so auseinandernehmen wie Marcus, wäre jedoch bereit,
einen Bugreport zu schreiben.
Viele Grüße,
Klaus
ich habe bereits ein bugreport an ***@packages.debian.org geschickt, (die Adresse war irgendwo als Bug-Adresse angegeben)

Bye
Jürgen
--
Dr.rer.nat. Jürgen Vollmer, Am Rennbuckel 21, D-76185 Karlsruhe
Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2
***@informatik-vollmer.de
www.informatik-vollmer.de
-------------------------------------------------------------------------------
Diese EMail ist elektronisch mittels GPG / PGP signiert.
Diese elektronische Unterschrift ist in einem EMail-Anhang enthalten.
Leider kann die Signatur ohne die Installation entsprechender Programme
weder geprüft noch angezeigt werden.
Mehr dazu unter: http://www.gnupg.org oder auch http://www.pgpi.org
-------------------------------------------------------------------------------
Dr. Juergen Vollmer
2014-09-30 15:20:07 UTC
Permalink
Hallo allerseits,
Post by Dr. Juergen Vollmer
Hallo allerseits,
echo abc | at now
BASH_FUNC_mc()=\(\)\ {\ \ .\ /usr/share/mc/mc-wrapper.sh"
"}; export BASH_FUNC_mc()
da nun nach der schliessenden } Klammer noch Code seht, wirft die BASH einen Fehler und das Kommando "echo abc" wird
nicht ausgeführt.
Meine Frage: wo kommt diese Definition von BASH_FUNC_mc her?
das ist nun klar, es müsste

BASH_FUNC_mc()=\(\)\ {\ \ .\ /usr/share/mc/mc-wrapper.sh"
"}
export BASH_FUNC_mc()

heissen.

Der Fehler entsteht beim Zusammenbauen der Job-Datei.
Diese wird in der Funktion writefile() zusammengbaut. Der Fehler ist in der Datei at.c in Zeile 455 (ftp://ftp.debian.org/debian/pool/main/a/at/at_3.1.16.orig.tar.gz)
Hier steht

fputs("; export ", fp);

es müsste heissen

fprintf (fp, "\n export "); /* oder auch one blank vor export */

nur wer pflegt das ein und wie kommt es dannzu unseren SuSE's?

Eigentlich ein fatal bug, der dringend behoben werden muss.

Jürgen
--
Dr.rer.nat. Jürgen Vollmer, Am Rennbuckel 21, D-76185 Karlsruhe
Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2
***@informatik-vollmer.de
www.informatik-vollmer.de
-------------------------------------------------------------------------------
Diese EMail ist elektronisch mittels GPG / PGP signiert.
Diese elektronische Unterschrift ist in einem EMail-Anhang enthalten.
Leider kann die Signatur ohne die Installation entsprechender Programme
weder geprüft noch angezeigt werden.
Mehr dazu unter: http://www.gnupg.org oder auch http://www.pgpi.org
-------------------------------------------------------------------------------
Marcus Meissner
2014-09-30 15:42:54 UTC
Permalink
Hi,

Dazu hab ich bug 899160 aufgemacht.

Evt ist es besser diese komischen Environmentvariablen rauszufiltern.

Ciao, Marcus
Post by Dr. Juergen Vollmer
Hallo allerseits,
Post by Dr. Juergen Vollmer
Hallo allerseits,
echo abc | at now
BASH_FUNC_mc()=\(\)\ {\ \ .\ /usr/share/mc/mc-wrapper.sh"
"}; export BASH_FUNC_mc()
da nun nach der schliessenden } Klammer noch Code seht, wirft die BASH einen Fehler und das Kommando "echo abc" wird
nicht ausgeführt.
Meine Frage: wo kommt diese Definition von BASH_FUNC_mc her?
das ist nun klar, es müsste
BASH_FUNC_mc()=\(\)\ {\ \ .\ /usr/share/mc/mc-wrapper.sh"
"}
export BASH_FUNC_mc()
heissen.
Der Fehler entsteht beim Zusammenbauen der Job-Datei.
Diese wird in der Funktion writefile() zusammengbaut. Der Fehler ist in der Datei at.c in Zeile 455 (ftp://ftp.debian.org/debian/pool/main/a/at/at_3.1.16.orig.tar.gz)
Hier steht
fputs("; export ", fp);
es müsste heissen
fprintf (fp, "\n export "); /* oder auch one blank vor export */
nur wer pflegt das ein und wie kommt es dannzu unseren SuSE's?
Eigentlich ein fatal bug, der dringend behoben werden muss.
Jürgen
--
Dr.rer.nat. Jürgen Vollmer, Am Rennbuckel 21, D-76185 Karlsruhe
Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2
www.informatik-vollmer.de
-------------------------------------------------------------------------------
Diese EMail ist elektronisch mittels GPG / PGP signiert.
Diese elektronische Unterschrift ist in einem EMail-Anhang enthalten.
Leider kann die Signatur ohne die Installation entsprechender Programme
weder geprüft noch angezeigt werden.
Mehr dazu unter: http://www.gnupg.org oder auch http://www.pgpi.org
-------------------------------------------------------------------------------
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+***@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+***@opensuse.org
Dr. Juergen Vollmer
2014-09-30 15:50:58 UTC
Permalink
Post by Marcus Meissner
Dazu hab ich bug 899160 aufgemacht.
Danke
Bye
Jürgen
--
Dr.rer.nat. Jürgen Vollmer, Am Rennbuckel 21, D-76185 Karlsruhe
Tel: +49(721) 92 04 87 1 Fax: +49(721) 92 04 87 2
***@informatik-vollmer.de
www.informatik-vollmer.de
-------------------------------------------------------------------------------
Diese EMail ist elektronisch mittels GPG / PGP signiert.
Diese elektronische Unterschrift ist in einem EMail-Anhang enthalten.
Leider kann die Signatur ohne die Installation entsprechender Programme
weder geprüft noch angezeigt werden.
Mehr dazu unter: http://www.gnupg.org oder auch http://www.pgpi.org
-------------------------------------------------------------------------------
Klaus Schneider-Grosch
2014-10-09 10:04:10 UTC
Permalink
Post by Dr. Juergen Vollmer
Post by Marcus Meissner
Dazu hab ich bug 899160 aufgemacht.
Danke
Bye
Jürgen
Hallo,

leider kann ich mir den Bug nicht (mehr) anschauen, vor einigen Tagen hat das
noch geklappt. Jetzt: Access denied für diesen Bug.

Mach ich was falsch oder hilft warten?

Viele Grüße,
Klaus
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+***@opensuse.org
Um den Listen Administrator zu erreichen, schicken
Sie eine Mail an: opensuse-de+***@opensuse.org
Loading...