Set runtime_path properly when running non-root 56/8256/3
authorDamjan Marion <damarion@cisco.com>
Wed, 30 Aug 2017 15:12:25 +0000 (17:12 +0200)
committerDamjan Marion <dmarion.lists@gmail.com>
Thu, 31 Aug 2017 07:33:37 +0000 (07:33 +0000)
non-root users should use /run/user/$PID/...

Change-Id: I1ca136df7a339eff193ed9c9a396d6965b192d0e
Signed-off-by: Damjan Marion <damarion@cisco.com>
src/vlib/unix/main.c
src/vpp/vnet/main.c

index cb34a89..f52316e 100644 (file)
@@ -57,7 +57,7 @@
 #define UNIX_CLI_DEFAULT_HISTORY 50
 
 char *vlib_default_runtime_dir __attribute__ ((weak));
-char *vlib_default_runtime_dir = "/run/vlib";
+char *vlib_default_runtime_dir = "vlib";
 
 unix_main_t unix_main;
 
@@ -437,7 +437,16 @@ unix_config (vlib_main_t * vm, unformat_input_t * input)
   um->unix_config_complete = 1;
 
   if (um->runtime_dir == 0)
-    um->runtime_dir = format (0, "%s%c", vlib_default_runtime_dir, 0);
+    {
+      uid_t uid = geteuid ();
+      if (uid == 00)
+       um->runtime_dir = format (0, "/run/%s%c",
+                                 vlib_default_runtime_dir, 0);
+      else
+       um->runtime_dir = format (0, "/run/user/%u/%s%c", uid,
+                                 vlib_default_runtime_dir, 0);
+    }
+
 
   return 0;
 }
index 9fe65fe..76371db 100644 (file)
@@ -44,7 +44,7 @@ vpe_main_init (vlib_main_t * vm)
 /*
  * Default path for runtime data
  */
-char *vlib_default_runtime_dir = "/run/vpp";
+char *vlib_default_runtime_dir = "vpp";
 
 /*
  * Load plugins from /usr/lib/vpp_plugins by default