Set runtime_path properly when running non-root

non-root users should use /run/user/$PID/...

Change-Id: I1ca136df7a339eff193ed9c9a396d6965b192d0e
Signed-off-by: Damjan Marion <damarion@cisco.com>
This commit is contained in:
Damjan Marion
2017-08-30 17:12:25 +02:00
committed by Damjan Marion
parent 203c079483
commit c67787be51
2 changed files with 12 additions and 3 deletions

View 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;
}

View 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