don't assume that we're root
authorMike Karels <karels@ucbvax.Berkeley.EDU>
Fri, 13 Apr 1984 00:33:40 +0000 (16:33 -0800)
committerMike Karels <karels@ucbvax.Berkeley.EDU>
Fri, 13 Apr 1984 00:33:40 +0000 (16:33 -0800)
SCCS-vsn: sbin/dump/dumprmt.c 1.7

usr/src/sbin/dump/dumprmt.c

index 67d82cb..08dee56 100644 (file)
@@ -1,4 +1,4 @@
-static char *sccsid = "@(#)dumprmt.c   1.6 (Berkeley) %G%";
+static char *sccsid = "@(#)dumprmt.c   1.7 (Berkeley) %G%";
 
 #include <sys/param.h>
 #include <sys/mtio.h>
 
 #include <sys/param.h>
 #include <sys/mtio.h>
@@ -7,6 +7,7 @@ static  char *sccsid = "@(#)dumprmt.c   1.6 (Berkeley) %G%";
 #include <netinet/in.h>
 
 #include <stdio.h>
 #include <netinet/in.h>
 
 #include <stdio.h>
+#include <pwd.h>
 #include <netdb.h>
 
 #define        TS_CLOSED       0
 #include <netdb.h>
 
 #define        TS_CLOSED       0
@@ -38,6 +39,8 @@ rmtconnaborted()
 rmtgetconn()
 {
        static struct servent *sp = 0;
 rmtgetconn()
 {
        static struct servent *sp = 0;
+       struct passwd *pw;
+       char *name = "root";
 
        if (sp == 0) {
                sp = getservbyname("shell", "tcp");
 
        if (sp == 0) {
                sp = getservbyname("shell", "tcp");
@@ -46,7 +49,10 @@ rmtgetconn()
                        exit(1);
                }
        }
                        exit(1);
                }
        }
-       rmtape = rcmd(&rmtpeer, sp->s_port, "root", "root", "/etc/rmt", 0);
+       pw = getpwuid(getuid());
+       if (pw && pw->pw_name)
+               name = pw->pw_name;
+       rmtape = rcmd(&rmtpeer, sp->s_port, name, name, "/etc/rmt", 0);
 }
 
 rmtopen(tape, mode)
 }
 
 rmtopen(tape, mode)