OXIESEC PANEL
- Current Dir:
/
/
lib
/
python3.6
/
site-packages
/
up2date_client
Server IP: 2a02:4780:11:1084:0:327f:3464:10
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
02/07/2025 11:05:01 PM
rwxr-xr-x
📄
__init__.py
0 bytes
04/03/2024 11:01:35 AM
rw-r--r--
📁
__pycache__
-
07/09/2024 11:23:34 AM
rwxr-xr-x
📄
capabilities.py
7.28 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
cldetect.py
2.97 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
clientCaps.py
2.16 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
clpwd.py
3.56 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
config.py
12.5 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
debUtils.py
2.73 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
getMethod.py
4.2 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
haltree.py
4.53 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
hardware.py
31.91 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
hardware_gudev.py
12.89 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
hardware_hal.py
11.32 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
hardware_udev.py
12.99 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
pkgUtils.py
295 bytes
04/03/2024 11:01:35 AM
rw-r--r--
📄
pkgplatform.py
309 bytes
04/03/2024 12:46:35 PM
rw-r--r--
📄
pmPlugin.py
2.79 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
rhnChannel.py
4.4 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
rhnHardware.py
328 bytes
04/03/2024 11:01:35 AM
rw-r--r--
📄
rhnPackageInfo.py
2.04 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
rhncli.py
9.12 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
rhnreg.py
32.13 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
rhnreg_constants.py
18.13 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
rhnserver.py
8.66 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
rpcServer.py
10.96 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
rpmUtils.py
5.2 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
transaction.py
4.09 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
tui.py
43.7 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
up2dateAuth.py
6.85 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
up2dateErrors.py
10.26 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
up2dateLog.py
2.06 KB
04/03/2024 11:01:35 AM
rw-r--r--
📄
up2dateUtils.py
5.06 KB
04/03/2024 12:46:35 PM
rw-r--r--
Editing: clpwd.py
Close
import pwd import os class ClPwd: class NoSuchUserException(Exception): def __init__(self, user): Exception.__init__(self, "No such user (%s)" % (user,)) def __init__(self, min_uid = None): self._user_key_map = {} self._uid_key_map = {} self._user_full_map = {} self._uid_full_map = {} if min_uid is None: self._min_uid = self.get_sys_min_uid(500) else: self._min_uid = min_uid def get_user_dict(self): self._load_passwd_database() return self._user_key_map def get_uid_dict(self): self._load_passwd_database() return self._uid_key_map def get_user_full_dict(self): self._load_passwd_database() return self._user_full_map def get_uid_full_dict(self): self._load_passwd_database() return self._uid_full_map def get_pw_by_name(self, user): """ Return pw_entry for user """ try: return self.get_user_full_dict()[user] except KeyError: raise ClPwd.NoSuchUserException(user) def get_pw_by_uid(self, uid): """ Return list of passwd entries for uid """ try: return self.get_uid_full_dict()[uid] except KeyError: raise ClPwd.NoSuchUserException(uid) def get_uid(self, user): """ Returns uid for user """ try: return self.get_user_full_dict()[user].pw_uid except KeyError: raise ClPwd.NoSuchUserException(user) def get_homedir(self, user): """ Returns homedir for a user @param user: string @return: string """ try: return self.get_user_full_dict()[user].pw_dir except KeyError: raise ClPwd.NoSuchUserException(user) def _load_passwd_database(self): """ Loads the passwd database and fills user_to_uid and user_to_homedir maps """ if not self._uid_full_map: for entry in pwd.getpwall(): self._user_full_map[entry.pw_name] = entry if entry.pw_uid not in self._uid_full_map: self._uid_full_map[entry.pw_uid] = [] self._uid_full_map[entry.pw_uid].append(entry) if entry.pw_uid >= self._min_uid: self._user_key_map[entry.pw_name] = entry if entry.pw_uid not in self._uid_key_map: self._uid_key_map[entry.pw_uid] = [] self._uid_key_map[entry.pw_uid].append(entry) def get_names(self, uid): """ Return names of users with uid specified @param uid: int @return: list of strings """ try: entries = self.get_uid_full_dict()[uid] except KeyError: raise ClPwd.NoSuchUserException(uid) return [entry.pw_name for entry in entries] def get_sys_min_uid(self, def_min_uid = 500): """ Return system defined MIN_UID from /etc/login.def or def_min_uid @param def_min_uid: int @return: MIN_UID: int """ LOGIN_DEF_FILE = '/etc/login.defs' if (os.path.exists(LOGIN_DEF_FILE)): with open(LOGIN_DEF_FILE, 'r') as lines: for line in lines: if line.startswith('UID_MIN'): try: return int(line.split('UID_MIN')[1].strip()) except ValueError: pass return def_min_uid