HEX
Server: Apache
System: Linux sg2plmcpnl492417.prod.sin2.secureserver.net 4.18.0-553.58.1.lve.el8.x86_64 #1 SMP Fri Jul 4 12:07:06 UTC 2025 x86_64
User: nyiet8349bzl (9207396)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/cloudlinux/venv/lib64/python3.11/site-packages/clcagefslib/fs.py
# 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 sys

import secureio
from clcommon import ClPwd

from .const import BASEDIR


def get_user_prefix(username) -> str:
    base = 100
    try:
        uid = secureio.clpwd.get_uid(username)
    except ClPwd.NoSuchUserException:
        secureio.print_error('user %s not found' % username)
        sys.exit(1)
    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