| |
DG1KFA > UNIX 11.08.98 21:26l 56 Lines 1902 Bytes #999 (999) @ DL
BID : EXJC9H_DB0XO
Read: GUEST
Subj: TNT-suid-Patch
Path: DB0MAK<DB0ERF<DB0MW<DB0SRS<DB0ZDF<DB0GE<DB0IZ<DB0RWI<DB0NDK<DB0XO
Sent: 980811/1722z @:DB0XO.#NRW.DEU.EU [Bergheim] DP5.07 $:EXJC9H_DB0XO
From: DG1KFA @ DB0XO.#NRW.DEU.EU (Andreas)
To: UNIX @ DL
Hallo FreundInnen!
Wer TNT unter Linux mit dem AX25-Kernel betreibt, wird das Problem kennen:
Einen Monitor gibts nur, wenn TNT suid root gestartet wird. Dann aber werden
auch sämtliche Save-Files etc. als root-User abgespeichert, was doch auf die
Dauer sehr nervt. Vor allem gefällt vielen sicher auch nicht die permanente
"Sicherheitslücke" eines als root laufenden Programms. Daher habe ich heute
einmal ein wenig gebastelt und folgenden Patch zustande gebracht, der wenn
TNT suid root gestartet wird, kurz nach der Initialisierung des Monitors
etc. sofort die Root-Privilegien abgibt und sich auf den startenden User
setzt. Es ist (vermutlich) nur ein fieser Hack, aber für Kommentare jeder
Art (und alle Verbesserungen) bin ich dankbar! Hier funktionierts aber
prächtig.
Also, hier der Patch (relativ zu tnt-1.1a3, sollte aber auch mit 1.1a1 oder
1.1a2 funktionieren):
--schnippp-----8<----------8<------------8<---------8<-------------
--- tnt1.1a3-original/main.c Tue Aug 11 19:07:31 1998
+++ tnt1.1a3/main.c Tue Aug 11 18:29:23 1998
@@ -271,6 +271,7 @@
int parm;
char hlpstr[10];
char fr_con[80];
+ uid_t user_id;
#ifdef USE_IFACE
int servlen;
struct sockaddr *saddr;
@@ -419,6 +420,17 @@
init_bcast();
#endif
+/* This is the place to drop root privileges if we were suid root.. */
+
+#ifdef _POSIX_SAVED_IDS
+ user_id = getuid();
+ setuid (user_id);
+#else
+ setreuid (geteuid (), getuid ());
+#endif
+
+/* END of ugly HACK by Andreas Franck (DG1KFA@DB0XO.#NRW.DEU.EU) */
+
if (strcmp(tnt_logfile,"") != 0) {
open_logfile(RX_NORM,RX_RCV,1,strlen(tnt_logfile),
M_CMDSCRIPT,tnt_logfile);
--schnapp-----8<---------8<----------8<-----------8<----------8<---
So, das wars! Viel Freude+Erfolg damit!
vy 73 de Andreas, DG1KFA@DB0XO.#NRW.DEU.EU!
Read previous mail | Read next mail
| |