]> arthur.barton.de Git - netdata.git/commitdiff
attempt to setuid to root, to detect if we are capable of running as root
authorCosta Tsaousis (ktsaou) <costa@tsaousis.gr>
Sun, 29 Jan 2017 20:30:52 +0000 (22:30 +0200)
committerCosta Tsaousis (ktsaou) <costa@tsaousis.gr>
Sun, 29 Jan 2017 20:30:52 +0000 (22:30 +0200)
src/apps_plugin.c

index cfb2298a04622096a63286e15cc0b28adc12371e..b42cf8568146fea44f8c2bf22f6e9dcb72949907 100644 (file)
@@ -3020,6 +3020,12 @@ static int am_i_running_as_root() {
         return 1;
     }
 
+    if(seteuid(0) == 0) {
+        euid = geteuid();
+        if(debug) info("I am running with escalated privileges, uid = %u, euid = %u.", uid, euid);
+        return 1;
+    }
+
     if(debug) info("I am not running with escalated privileges, uid = %u, euid = %u.", uid, euid);
     return 0;
 }
@@ -3135,8 +3141,8 @@ int main(int argc, char **argv) {
 
     parse_args(argc, argv);
 
-    if(!am_i_running_as_root()) {
-        if(!check_capabilities()) {
+    if(!check_capabilities()) {
+        if(!am_i_running_as_root()) {
             uid_t uid = getuid(), euid = geteuid();
 #ifdef HAVE_CAPABILITY
             error("apps.plugin should either run as root (now running with uid %u, euid %u) or have special capabilities. "