summaryrefslogtreecommitdiff
path: root/src/services/vyos-configd
diff options
context:
space:
mode:
authorJohn Estabrook <jestabro@vyos.io>2024-06-21 21:55:47 -0500
committerMergify <37929162+mergify[bot]@users.noreply.github.com>2024-06-24 17:31:29 +0000
commitf1aa4c49b52e2be287a838560549689b9357a91d (patch)
treec1a3cd54debf74876c5c867a664e786ae5523685 /src/services/vyos-configd
parent340e44c59663d2b94e7b1fddb05c49a3ad737938 (diff)
downloadvyos-1x-f1aa4c49b52e2be287a838560549689b9357a91d.tar.gz
vyos-1x-f1aa4c49b52e2be287a838560549689b9357a91d.zip
configd: T6504: send sudo_user on session init and set env variable
The environment variable SUDO_USER is checked by system_login.py so as to prevent deleting the current user. Provide from config session and set within configd environment. (cherry picked from commit 7016f840f1193399f6ac59fab7faa721049229e8)
Diffstat (limited to 'src/services/vyos-configd')
-rwxr-xr-xsrc/services/vyos-configd10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/services/vyos-configd b/src/services/vyos-configd
index c89c486e5..d92b539c8 100755
--- a/src/services/vyos-configd
+++ b/src/services/vyos-configd
@@ -179,8 +179,13 @@ def initialization(socket):
pid_string = socket.recv().decode("utf-8", "ignore")
resp = "pid"
socket.send(resp.encode())
+ sudo_user_string = socket.recv().decode("utf-8", "ignore")
+ resp = "sudo_user"
+ socket.send(resp.encode())
logger.debug(f"config session pid is {pid_string}")
+ logger.debug(f"config session sudo_user is {sudo_user_string}")
+
try:
session_out = os.readlink(f"/proc/{pid_string}/fd/1")
session_mode = 'w'
@@ -192,6 +197,8 @@ def initialization(socket):
session_out = script_stdout_log
session_mode = 'a'
+ os.environ['SUDO_USER'] = sudo_user_string
+
try:
configsource = ConfigSourceString(running_config_text=active_string,
session_config_text=session_string)
@@ -266,9 +273,6 @@ if __name__ == '__main__':
cfg_group = grp.getgrnam(CFG_GROUP)
os.setgid(cfg_group.gr_gid)
- os.environ['SUDO_USER'] = 'vyos'
- os.environ['SUDO_GID'] = str(cfg_group.gr_gid)
-
def sig_handler(signum, frame):
shutdown()