PHP 8.2.30
Preview: fs.py Size: 1020 B
/proc/thread-self/root/proc/self/root/opt/cloudlinux/venv/lib/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 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()

Directory Contents

Dirs: 3 × Files: 7

Name Size Perms Modified Actions
selector DIR
- drwxr-xr-x 2026-04-09 07:00:57
Edit Download
- drwxr-xr-x 2026-04-09 07:00:58
Edit Download
- drwxr-xr-x 2026-04-09 07:00:57
Edit Download
2.76 KB lrw-r--r-- 2026-03-24 09:59:14
Edit Download
936 B lrw-r--r-- 2026-03-24 09:59:14
Edit Download
21.10 KB lrwxr-xr-x 2026-03-24 09:59:14
Edit Download
402 B lrw-r--r-- 2026-03-24 09:59:14
Edit Download
1020 B lrw-r--r-- 2026-03-24 09:59:14
Edit Download
2.68 KB lrw-r--r-- 2026-03-24 09:59:14
Edit Download
180 B lrw-r--r-- 2026-03-24 09:59:14
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).