|
Server : LiteSpeed System : Linux barito.iixcp.rumahweb.net 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 21 16:39:08 EDT 2026 x86_64 User : elvh3918 ( 1528) PHP Version : 8.2.31 Disable Function : mail Directory : /opt/cloudlinux/venv/lib64/python3.11/site-packages/clcagefslib/ |
# 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()