summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--python/vyos/utils/auth.py7
-rwxr-xr-xsrc/conf_mode/system_login.py3
2 files changed, 5 insertions, 5 deletions
diff --git a/python/vyos/utils/auth.py b/python/vyos/utils/auth.py
index 4aa446455..f9551419f 100644
--- a/python/vyos/utils/auth.py
+++ b/python/vyos/utils/auth.py
@@ -20,7 +20,6 @@ import string
from dataclasses import dataclass
from decimal import Decimal
-from pwd import getpwnam
from enum import StrEnum
from typing import List
from typing import Optional
@@ -215,7 +214,9 @@ def get_local_users(min_uid=MIN_USER_UID, max_uid=MAX_USER_UID) -> list:
return local_users
-
def get_user_home_dir(user: str) -> str:
"""Return user's home directory"""
- return getpwnam(user).pw_dir
+ for u in get_local_passwd_entries():
+ if u.pw_name == user:
+ return u.pw_dir
+ raise KeyError(f"User '{user}' not found in /etc/passwd")
diff --git a/src/conf_mode/system_login.py b/src/conf_mode/system_login.py
index 4da1d10ae..3cff7a806 100755
--- a/src/conf_mode/system_login.py
+++ b/src/conf_mode/system_login.py
@@ -21,7 +21,6 @@ import json
from copy import deepcopy
from passlib.hosts import linux_context
from psutil import users
-from pwd import getpwuid
from sys import exit
from time import sleep
@@ -432,7 +431,7 @@ def apply(login):
# retrieve current owner of home directory and adjust on demand
dir_owner = None
try:
- dir_owner = getpwuid(os.stat(home_dir).st_uid).pw_name
+ dir_owner = get_local_passwd_entries(os.stat(home_dir).st_uid).pw_name
except:
pass