Re: XTerm verschluckt die Env.-Variable TMPDIR
Helmut Waitzmann [EMAIL PROTECTED] writes: »execargs« ist ein Programm, das mit seinen Parametern argv[1] argv[2] ... die Funktion execvp(argv[1], { argv[2], argv[3], ...}) aufruft. $ TMPDIR=/tmp execargs printenv printenv TMPDIR; printf 'Exit Code: %s\n' $? /tmp Exit Code: 0 Setze ich jetzt bei »execargs« das Setuid- oder Setgid-Flag auf eine Benutzer- oder Gruppenkennung, die sich von meiner unterscheidet, erhalte ich folgende Ausgabe: $ TMPDIR=/tmp execargs printenv printenv TMPDIR; printf 'Exit Code: %s\n' $? Exit Code: 1 Das scheint also eine Eigenschaft der Laufzeitumgebung zu sein. »xterm« tut es also nicht explizit. Das selbe in grün mit screen(1). Es scheinen also wohl alle suid- und sgid-Programme betroffen zu sein. Die Vermutung liegt nahe, dass die Ursache im C-library oder im Startup-Code liegt. -- Wenn Sie mir E-Mail schreiben, stellen | When writing me e-mail, please Sie bitte vor meine E-Mail-Adresse | precede my e-mail address with meinen Vor- und Nachnamen, etwa so: | my full name, like Helmut Waitzmann [EMAIL PROTECTED], (Helmut Waitzmann) [EMAIL PROTECTED] -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: XTerm verschluckt die Env.-Variable TMPDIR
Am 2006-04-07 00:29:33, schrieb Helmut Waitzmann: Der Fehler ist alt und bestand schon in Woody: Fehlerbericht Nr. 276417 im Debian Bug Tracking System. Erinnerst Du Dich? Ja, habs jetzt nachgelesen... Komisch ist nur, das dieser BUG erst jetzt nach der umstellung auf Sarge auftauchte, denn unter Woody hatte ich TMPDIR und bis vor ein paar Wochen keine Probleme. Ich habe damals nach Branden Robinsons Aussage »xterm contains no logic for scrubbing the environment.« aus Zeitgründen klein beigegeben. Der Testfall, der den Fehler beschreibt -- $ env TMPDIR=/tmp xterm -hold -e printenv TMPDIR einerseits und $ env DUMMY=/tmp xterm -hold -e printenv DUMMY andererseits -- lässt keinen Zweifel daran, dass xterm hier TMPDIR verschluckt. Und xterm verschuckt noch mehr... Werde mal in der debian-x nachfragen, denn ich habe jede menge Programme laufen, die massiven DoS Attaken in /tmp ausgesetzt werden können, weshalb ich auf $TMPDIR (/tmp/$USER, chmod 700) angewiesen bin. TMP nach /home/$USER/tmp tu verlagern schlägt fehl, da es sich um ein SSH getunneltes NFS-Share handelt. snip Das scheint also eine Eigenschaft der Laufzeitumgebung zu sein. »xterm« tut es also nicht explizit. Da heist es also die xterm Source umzugraben... Greetings Michelle Konzack -- Linux-User #280138 with the Linux Counter, http://counter.li.org/ # Debian GNU/Linux Consultant # Michelle Konzack Apt. 917 ICQ #328449886 50, rue de Soultz MSM LinuxMichi 0033/3/8845235667100 Strasbourg/France IRC #Debian (irc.icq.com) -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: XTerm verschluckt die Env.-Variable TMPDIR
Michelle Konzack [EMAIL PROTECTED] writes: Am 2006-03-23 16:31:29, schrieb Friedhelm Usenet Waitzmann: Bekannt. Xterm in sarge verschluckt die Environmentvariable Bekannt? - Also ich bin gerade noch mal das BTS von xfree86 durchgegangen und habe in den tausenden messages nichts gefunden... Wo haste das gelesen? Der Fehler ist alt und bestand schon in Woody: Fehlerbericht Nr. 276417 im Debian Bug Tracking System. Erinnerst Du Dich? Ich habe damals nach Branden Robinsons Aussage »xterm contains no logic for scrubbing the environment.« aus Zeitgründen klein beigegeben. Der Testfall, der den Fehler beschreibt -- $ env TMPDIR=/tmp xterm -hold -e printenv TMPDIR einerseits und $ env DUMMY=/tmp xterm -hold -e printenv DUMMY andererseits -- lässt keinen Zweifel daran, dass xterm hier TMPDIR verschluckt. Vielleicht kann man jetzt einen neuen Anlauf nehmen? Also, los geht's: »execargs« /* execargs.c - execute arguments via execvp() resp. execv() 2006-04-06T00:56:42+0200 */ #define _POSIX_SOURCE 1 #define _POSIX_C_SOURCE 199506L #define _XOPEN_VERSION 4 #include errno.h /* errno, EINVAL, ENOENT, NOEXEC, EACCES */ #include stddef.h /* NULL, size_t */ #include stdio.h /* fprintf(), stderr */ #include stdlib.h /* EXIT_... */ #include string.h /* strerror() */ #include unistd.h /* exec...() */ static const char * invocation_name=execargs; int main(int argc, char **argv) { if(argc 0 argv[0] != NULL) { /* an invocation name is supplied by the OS resp. run time * environment */ /* strip all leading path components from argv[0], if there are any: */ invocation_name = strrchr(argv[0], '/'); /* invocation_name points to last ocurrence of '/' in * argv[0] if there is one, otherwise invocation_name is * NULL */ if(invocation_name == NULL) /* there aren't any '/' characters in argv[0]: nothing to * do, just use argv[0] as invocation_name. */ invocation_name = argv[0]; else /* we have found a last '/' character: invocation_name now * points to it. * * let invocation_name begin after last '/' character: */ invocation_name += 1; } /* process option arguments: */ if (argc = 2 argv[1] != NULL) /* At least the name of the program to be executed is given. */ { /* argv[1] is the name of the program to be executed, argv+2 is its argument vector: */ execvp(argv[1], argv+2); /* if returning from exec...(), an error has occurred: */ { int saved_errno=errno; { const char * error_text=strerror(errno); fprintf(stderr, %s:\ncannot execute %s%s%s\n, invocation_name, argv[1], (error_text != NULL) ? :\n : ., (error_text != NULL) ? error_text : ); } switch(saved_errno) { #ifdef ENOENT case ENOENT: #endif return 127; break; #ifdef EACCES case EACCES: #endif #ifdef EPERM case EPERM: #endif #ifdef ENOEXEC case ENOEXEC: #endif #ifdef ENOTDIR case ENOTDIR: #endif #ifdef EINVAL case EINVAL: #endif #ifdef EISDIR case EISDIR: #endif #ifdef ELIBBAD case ELIBBAD: #endif return 126; break; default:
Re: XTerm verschluckt die Env.-Variable TMPDIR (was: $TMPDIR funktioniert unter x-window/fvwm nicht mehr)
Am 2006-03-23 16:31:29, schrieb Friedhelm Usenet Waitzmann: Bekannt. Xterm in sarge verschluckt die Environmentvariable Bekannt? - Also ich bin gerade noch mal das BTS von xfree86 durchgegangen und habe in den tausenden messages nichts gefunden... Wo haste das gelesen? TMPDIR. Allerdings weiß ich nichts davon, dass das nicht auftreten soll, wenn man das Xterm automatisch ein $SHELL Genau, denn wenn Du ein xterm -e /bin/bash -c /usr/bin/mc machst, wird es nichts, aber mit xterm -e /bin/bash -l -c /usr/bin/mc verwandelt sich die neu aufgerufene SHELL in eine Loginshell und ließt die env ein. Somit steht $TMPDIR wieder zur verfügung. Abhilfe: mit dem Programm env die Belegung dieser Variablen in das von xterm gestartete Programm hineinreichen: xterm -e env TMPDIR=$TMPDIR $SHELL Denke nicht das es einen Unterschied macht, ob ich env oder bash aufrufe. Greetings Michelle Konzack -- Linux-User #280138 with the Linux Counter, http://counter.li.org/ # Debian GNU/Linux Consultant # Michelle Konzack Apt. 917 ICQ #328449886 50, rue de Soultz MSM LinuxMichi 0033/3/8845235667100 Strasbourg/France IRC #Debian (irc.icq.com) -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
XTerm verschluckt die Env.-Variable TMPDIR (was: $TMPDIR funktioniert unter x-window/fvwm nicht mehr)
Michelle Konzack: Teil der Konfiguration des Windowmanagers fvwm: woody: *ButtonBar1: (Icon 32x32.xterm.xpm, Action 'Exec xterm -geometry 92x29+0+150 -fn 10x20 -title xterm -name xterm -n xterm -bg blue -fg white -sb -sl 8192 ') *ButtonBar1: (Icon 32x32.filemgr.xpm, Action 'Exec xterm -geometry 94x29+0+150 -fn 10x20 -title Midnight Commander -name mc-n mc-e /usr/bin/mc ') *ButtonBar1: (Icon 32x32.mutt.xpm,Action 'Exec xterm -geometry 80x28+0+170 -fn 10x20 -title mutt -name mutt -n mutt -e /usr/bin/mutt ') sarge: *ButtonBar1: (Icon 32x32.xterm.xpm, Action 'Exec xterm -geometry 92x29+0+150 -fn 10x20 -title xterm -name xterm -n xterm -bg blue -fg white -sb -sl 8192 ') *ButtonBar1: (Icon 32x32.filemgr.xpm, Action 'Exec xterm -geometry 94x29+0+150 -fn 10x20 -title Midnight Commander -name mc-n mc-e /bin/bash -l -c /usr/bin/mc ') *ButtonBar1: (Icon 32x32.mutt.xpm,Action 'Exec xterm -geometry 80x28+0+170 -fn 10x20 -title mutt -name mutt -n mutt -e /bin/bash -l -c /usr/bin/mutt ') Do you see it? the first line is the same as the line under Wooody and it works. But xterm called for mc and mutt does not work and need additionaly /bin/bash -l -c ... Was sagste jetzt dazu? Bekannt. Xterm in sarge verschluckt die Environmentvariable TMPDIR. Allerdings weiß ich nichts davon, dass das nicht auftreten soll, wenn man das Xterm automatisch ein $SHELL starten lässt, sondern nur, wenn man mit -e program [ arg ]... ein Programm angibt. Abhilfe: mit dem Programm env die Belegung dieser Variablen in das von xterm gestartete Programm hineinreichen: xterm -e env TMPDIR=$TMPDIR $SHELL bzw. xterm -e env TMPDIR=$TMPDIR mutt -- Bitte in die Adressierung auch meinen|Please put my full name also into Vor- u. Nachnamen stellen z.B. |the recipient like Friedhelm Waitzmann [EMAIL PROTECTED], (Friedhelm Waitzmann) [EMAIL PROTECTED], Waitzmann, Friedhelm [EMAIL PROTECTED] -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)