diff options
author | Michal Ruprich <michalruprich@gmail.com> | 2022-11-22 12:38:05 +0100 |
---|---|---|
committer | Michal Ruprich <michalruprich@gmail.com> | 2022-11-23 10:19:10 +0100 |
commit | 1d42fb941af17a29346b2af03338f8e18470f009 (patch) | |
tree | d43d16d67de768ee7b1f723f77e1d10f919edefb | |
parent | Merge pull request #12348 from donaldsharp/expand_timings (diff) | |
download | frr-1d42fb941af17a29346b2af03338f8e18470f009.tar.xz frr-1d42fb941af17a29346b2af03338f8e18470f009.zip |
tools: Enable start of FRR for non-root user
There might be use cases when this would make sense, for example
running FRR in a container as a designated user.
Signed-off-by: Michal Ruprich <mruprich@redhat.com>
-rw-r--r-- | tools/etc/frr/daemons | 5 | ||||
-rwxr-xr-x | tools/frrcommon.sh.in | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/tools/etc/frr/daemons b/tools/etc/frr/daemons index 8aa08871e..2427bfff7 100644 --- a/tools/etc/frr/daemons +++ b/tools/etc/frr/daemons @@ -91,6 +91,11 @@ pathd_options=" -A 127.0.0.1" # #MAX_FDS=1024 +# Uncomment this option if you want to run FRR as a non-root user. Note that +# you should know what you are doing since most of the daemons need root +# to work. This could be useful if you want to run FRR in a container +# for instance. +# FRR_NO_ROOT="yes" # For any daemon, you can specify a "wrap" command to start instead of starting # the daemon directly. This will simply be prepended to the daemon invocation. diff --git a/tools/frrcommon.sh.in b/tools/frrcommon.sh.in index 3c16c27c6..4f095a176 100755 --- a/tools/frrcommon.sh.in +++ b/tools/frrcommon.sh.in @@ -43,6 +43,10 @@ RELOAD_SCRIPT="$D_PATH/frr-reload.py" # is_user_root () { + if [[ ! -z $FRR_NO_ROOT && "${FRR_NO_ROOT}" == "yes" ]]; then + return 0 + fi + [ "${EUID:-$(id -u)}" -eq 0 ] || { log_failure_msg "Only users having EUID=0 can start/stop daemons" return 1 |