| Server IP : 213.136.93.164 / Your IP : 216.73.216.20 Web Server : Apache System : Linux m14200.contabo.net 5.14.0-611.54.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed May 6 18:03:03 EDT 2026 x86_64 User : ki692510 ( 1047) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /proc/thread-self/root/opt/cloudlinux/venv/lib64/python3.11/site-packages/clcagefslib/ |
Upload File : |
# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2024 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENSE.TXT
import functools
import grp
import secureio
from clcommon import ClPwd
from .const import BASEDIR
from .exceptions import UserNotFoundError
def get_user_prefix(username) -> str:
base = 100
try:
uid = secureio.clpwd.get_uid(username)
except ClPwd.NoSuchUserException:
raise UserNotFoundError(username)
b = uid % base
prefix = "%02d" % b
return prefix
def get_var_cagefs_prefixed(username):
prefix = get_user_prefix(username)
return f"{BASEDIR}/{prefix}"
def get_user_var_cagefs_path(username):
return f"{get_var_cagefs_prefixed(username)}/{username}/"
@functools.cache
def get_linksafe_gid() -> int | None:
try:
return grp.getgrnam('linksafe').gr_gid
except KeyError:
return None
def user_exists(user):
return user in secureio.clpwd.get_user_dict()