From 4603781af905032f843b54b00da2bf639b2d27fe Mon Sep 17 00:00:00 2001 From: Rafael Ristovski Date: Thu, 25 May 2023 21:24:15 +0200 Subject: [PATCH] retrieve current username correctly `os.getlogin()` does not work in some cases, however `getpass.getuser()` does. --- wgnetns/main.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wgnetns/main.py b/wgnetns/main.py index 41ebd36..74f34a4 100755 --- a/wgnetns/main.py +++ b/wgnetns/main.py @@ -4,6 +4,7 @@ from argparse import ArgumentParser, RawDescriptionHelpFormatter from pathlib import Path from typing import Any, Optional import dataclasses +import getpass import json import os import subprocess @@ -92,7 +93,7 @@ def cli(args): data = json.loads(output) print('\n'.join(item['name'] for item in data)) elif opts.action == 'switch': - os.execvp('sudo', ['ip', 'ip', 'netns', 'exec', opts.netns, 'sudo', '-u', os.getlogin(), '-D', Path.cwd().as_posix(), os.environ['SHELL'], '-i']) + os.execvp('sudo', ['ip', 'ip', 'netns', 'exec', opts.netns, 'sudo', '-u', getpass.getuser(), '-D', Path.cwd().as_posix(), os.environ['SHELL'], '-i']) else: raise RuntimeError('congratulations, you reached unreachable code')