change uid when invoked as root
authorMichael Gernoth <michael@gernoth.net>
Thu, 17 Dec 2009 15:34:21 +0000 (16:34 +0100)
committerMichael Gernoth <michael@gernoth.net>
Thu, 17 Dec 2009 15:34:21 +0000 (16:34 +0100)
upsgraph.pl

index aa777210125b94c4fafe92b5e554da58e52288d8..bef10a5460a9d302b8eb974c630b7e1ffec577ec 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/perl -w
 
-if (@ARGV != 3) {
-       print STDERR "Syntax: ${0} host /path/to/file.rrd /output/directory/\n";
+if ((@ARGV != 3) && (@ARGV != 4)) {
+       print STDERR "Syntax: ${0} host /path/to/file.rrd /output/directory/ [uid]\n";
        exit(1);
 }
 
@@ -97,6 +97,16 @@ my $vars = {
 
 use Net::SNMP;
 
+if ($> == 0) {
+       if (@ARGV != 4) {
+               print STDERR "Running as root, please provide UID as 4th argument!\n";
+               exit(1);
+       }
+
+       print "Running as root, switching to ".$ARGV[3]."\n";
+       $< = $> = $ARGV[3];
+}
+
 if (! -e "${rrdfile}") {
        my $cmd = "rrdtool create \"${rrdfile}\" ";
        foreach my $var (@fields) {
Impressum, Datenschutz