mirror of
https://github.com/ArchiveBox/ArchiveBox
synced 2024-11-29 15:40:21 +00:00
fix get_system_user failing on uid 999 in k3s
This commit is contained in:
parent
f5aaeb6de7
commit
19aefc85e6
1 changed files with 22 additions and 14 deletions
|
@ -366,24 +366,32 @@ ALLOWDENYLIST_REGEX_FLAGS: int = re.IGNORECASE | re.UNICODE | re.MULTILINE
|
||||||
|
|
||||||
############################## Version Config ##################################
|
############################## Version Config ##################################
|
||||||
|
|
||||||
def get_system_user():
|
def get_system_user() -> str:
|
||||||
SYSTEM_USER = getpass.getuser() or os.getlogin()
|
# some host OS's are unable to provide a username (k3s, Windows), making this complicated
|
||||||
|
# uid 999 is especially problematic and breaks many attempts
|
||||||
|
SYSTEM_USER = None
|
||||||
|
FALLBACK_USER_PLACHOLDER = f'user_{os.getuid()}'
|
||||||
|
|
||||||
|
# Option 1
|
||||||
try:
|
try:
|
||||||
import pwd
|
import pwd
|
||||||
return pwd.getpwuid(os.geteuid()).pw_name or SYSTEM_USER
|
SYSTEM_USER = SYSTEM_USER or pwd.getpwuid(os.geteuid()).pw_name
|
||||||
except KeyError:
|
except (ModuleNotFoundError, Exception):
|
||||||
# Process' UID might not map to a user in cases such as running the Docker image
|
|
||||||
# (where `archivebox` is 999) as a different UID.
|
|
||||||
pass
|
|
||||||
except ModuleNotFoundError:
|
|
||||||
# pwd doesn't exist on windows
|
|
||||||
pass
|
|
||||||
except Exception:
|
|
||||||
# this should never happen, uncomment to debug
|
|
||||||
# raise
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
return SYSTEM_USER
|
# Option 2
|
||||||
|
try:
|
||||||
|
SYSTEM_USER = SYSTEM_USER or getpass.getuser()
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
|
# Option 3
|
||||||
|
try:
|
||||||
|
SYSTEM_USER = SYSTEM_USER or os.getlogin()
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
|
return SYSTEM_USER or FALLBACK_USER_PLACHOLDER
|
||||||
|
|
||||||
def get_version(config):
|
def get_version(config):
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in a new issue