X7ROOT File Manager
Current Path:
/opt/cloudlinux/venv/lib/python3.11/site-packages
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
??
..
??
GitPython-3.1.32.dist-info
??
Jinja2-3.0.3.dist-info
??
Mako-1.2.4.dist-info
??
MarkupSafe-2.1.3.dist-info
??
PyJWT-2.8.0.dist-info
??
PyMySQL-1.1.0.dist-info
??
PyVirtualDisplay-3.0.dist-info
??
PyYAML-6.0.1.dist-info
??
__pycache__
??
_cffi_backend.cpython-311-x86_64-linux-gnu.so
(267.63 KB)
??
_distutils_hack
??
_pyrsistent_version.py
(23 B)
??
_pytest
??
_yaml
??
aiohttp
??
aiohttp-3.9.2.dist-info
??
aiohttp_jinja2
??
aiohttp_jinja2-1.5.dist-info
??
aiohttp_security
??
aiohttp_security-0.4.0.dist-info
??
aiohttp_session
??
aiohttp_session-2.9.0.dist-info
??
aiosignal
??
aiosignal-1.3.1.dist-info
??
alembic
??
alembic-1.11.1.dist-info
??
annotated_types
??
annotated_types-0.6.0.dist-info
??
astroid
??
astroid-2.15.6.dist-info
??
attr
??
attrs
??
attrs-23.1.0.dist-info
??
backports
??
certifi
??
certifi-2023.7.22.dist-info
??
cffi
??
cffi-1.15.1.dist-info
??
chardet
??
chardet-5.2.0.dist-info
??
charset_normalizer
??
charset_normalizer-2.1.1.dist-info
??
cl_dom_collector
??
cl_proc_hidepid.py
(4.53 KB)
??
cl_website_collector
??
clcagefslib
??
clcommon
??
clconfig
??
clconfigure
??
clcontrollib.py
(51.73 KB)
??
cldashboard
??
cldetectlib.py
(18.4 KB)
??
cldiaglib.py
(47.56 KB)
??
clevents
??
clflags
??
clhooklib.py
(1.27 KB)
??
cli_utils.py
(1.66 KB)
??
cllicense
??
cllicenselib.py
(9.1 KB)
??
cllimits
??
cllimits_validator
??
cllimitslib_v2
??
cllvectl
??
clpackages
??
clquota
??
clselect
??
clselector
??
clsentry
??
clsetuplib.py
(4.35 KB)
??
clsudo.py
(14.42 KB)
??
clsummary
??
clveconfig
??
clwizard
??
configparser-5.0.2.dist-info
??
configparser.py
(1.51 KB)
??
contextlib2
??
contextlib2-21.6.0.dist-info
??
coverage
??
coverage-7.2.7.dist-info
??
cryptography
??
cryptography-41.0.2.dist-info
??
ddt-1.4.4.dist-info
??
ddt.py
(12.43 KB)
??
dill
??
dill-0.3.7.dist-info
??
distlib
??
distlib-0.3.8.dist-info
??
distutils-precedence.pth
(151 B)
??
docopt-0.6.2.dist-info
??
docopt.py
(19.48 KB)
??
dodgy
??
dodgy-0.2.1.dist-info
??
filelock
??
filelock-3.13.1.dist-info
??
flake8
??
flake8-5.0.4.dist-info
??
flake8_polyfill
??
flake8_polyfill-1.0.2.dist-info
??
frozenlist
??
frozenlist-1.4.0.dist-info
??
future
??
future-0.18.3.dist-info
??
git
??
gitdb
??
gitdb-4.0.10.dist-info
??
guppy
??
guppy3-3.1.3.dist-info
??
idna
??
idna-3.4.dist-info
??
iniconfig
??
iniconfig-2.0.0.dist-info
??
isort
??
isort-5.12.0.dist-info
??
jinja2
??
jsonschema
??
jsonschema-3.2.0.dist-info
??
jwt
??
lazy_object_proxy
??
lazy_object_proxy-1.9.0.dist-info
??
libfuturize
??
libpasteurize
??
lve_stats-2.0.dist-info
??
lve_utils
??
lveapi.py
(19.53 KB)
??
lvectllib.py
(102.55 KB)
??
lvemanager
??
lvestat.py
(6.83 KB)
??
lvestats
??
lxml
??
lxml-4.9.2.dist-info
??
mako
??
markupsafe
??
mccabe-0.7.0.dist-info
??
mccabe.py
(10.4 KB)
??
mock
??
mock-5.1.0.dist-info
??
multidict
??
multidict-6.0.4.dist-info
??
numpy
??
numpy-1.25.1.dist-info
??
numpy.libs
??
packaging
??
packaging-23.1.dist-info
??
pam.py
(7.38 KB)
??
past
??
pep8_naming-0.10.0.dist-info
??
pep8ext_naming.py
(18.61 KB)
??
pip
??
pip-25.0.1.dist-info
??
pkg_resources
??
platformdirs
??
platformdirs-3.11.0.dist-info
??
pluggy
??
pluggy-1.2.0.dist-info
??
prettytable
??
prettytable-3.8.0.dist-info
??
prometheus_client
??
prometheus_client-0.8.0.dist-info
??
prospector
??
prospector-1.10.2.dist-info
??
psutil
??
psutil-5.9.5.dist-info
??
psycopg2
??
psycopg2_binary-2.9.6.dist-info
??
psycopg2_binary.libs
??
py.py
(263 B)
??
pycodestyle-2.9.1.dist-info
??
pycodestyle.py
(101.08 KB)
??
pycparser
??
pycparser-2.21.dist-info
??
pydantic
??
pydantic-2.4.2.dist-info
??
pydantic_core
??
pydantic_core-2.10.1.dist-info
??
pydocstyle
??
pydocstyle-6.3.0.dist-info
??
pyfakefs
??
pyfakefs-5.2.3.dist-info
??
pyflakes
??
pyflakes-2.5.0.dist-info
??
pylint
??
pylint-2.17.4.dist-info
??
pylint_celery
??
pylint_celery-0.3.dist-info
??
pylint_django
??
pylint_django-2.5.3.dist-info
??
pylint_flask
??
pylint_flask-0.6.dist-info
??
pylint_plugin_utils
??
pylint_plugin_utils-0.7.dist-info
??
pylve-2.1-py3.11.egg-info
??
pylve.cpython-311-x86_64-linux-gnu.so
(25.48 KB)
??
pymysql
??
pyparsing
??
pyparsing-3.0.9.dist-info
??
pyrsistent
??
pyrsistent-0.19.3.dist-info
??
pytest
??
pytest-7.4.0.dist-info
??
pytest_check
??
pytest_check-2.5.3.dist-info
??
pytest_snapshot
??
pytest_snapshot-0.9.0.dist-info
??
pytest_subprocess
??
pytest_subprocess-1.5.0.dist-info
??
pytest_tap
??
pytest_tap-3.5.dist-info
??
python_pam-1.8.4.dist-info
??
pyvirtualdisplay
??
raven
??
raven-6.10.0.dist-info
??
remove_ubc.py
(5.73 KB)
??
requests
??
requests-2.31.0.dist-info
??
requirements_detector
??
requirements_detector-1.2.2.dist-info
??
schema-0.7.5.dist-info
??
schema.py
(29.51 KB)
??
secureio.py
(18.83 KB)
??
semver
??
semver-3.0.1.dist-info
??
sentry_sdk
??
sentry_sdk-1.29.2.dist-info
??
setoptconf
??
setoptconf_tmp-0.3.1.dist-info
??
setuptools
??
setuptools-78.1.0.dist-info
??
simple_rpm.so
(11.29 KB)
??
simplejson
??
simplejson-3.19.1.dist-info
??
six-1.16.0.dist-info
??
six.py
(33.74 KB)
??
smmap
??
smmap-5.0.0.dist-info
??
snowballstemmer
??
snowballstemmer-2.2.0.dist-info
??
sqlalchemy
??
sqlalchemy-1.3.24.dist-info
??
ssa
??
svgwrite
??
svgwrite-1.4.3.dist-info
??
tap
??
tap_py-3.2.1.dist-info
??
testfixtures
??
testfixtures-7.1.0.dist-info
??
toml
??
toml-0.10.2.dist-info
??
tomlkit
??
tomlkit-0.11.8.dist-info
??
typing_extensions-4.7.1.dist-info
??
typing_extensions-4.8.0.dist-info
??
typing_extensions.py
(108.48 KB)
??
unshare-0.22.dist-info
??
unshare.cpython-311-x86_64-linux-gnu.so
(8.17 KB)
??
urllib3
??
urllib3-2.0.4.dist-info
??
vendors_api
??
virtualenv
??
virtualenv-20.21.1.dist-info
??
wcwidth
??
wcwidth-0.2.6.dist-info
??
wmt
??
wrapt
??
wrapt-1.15.0.dist-info
??
yaml
??
yarl
??
yarl-1.9.2.dist-info
Editing: cl_proc_hidepid.py
# -*- coding: utf-8 -*- # Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2019 All Rights Reserved # # Licensed under CLOUD LINUX LICENSE AGREEMENT # http://cloudlinux.com/docs/LICENSE.TXT # Module contains functions for remounting /proc with hidepid=2 option # see CAG-796 for details import subprocess import re from clcommon.cpapi import Feature, is_panel_feature_supported from clcommon.sysctl import SysCtlConf, SYSCTL_CL_CONF_FILE from clcommon.utils import grep, proc_can_see_other_uid_and_hidepid_synced # on some systems hidepid value is str HidepidValuesDict = { 'noaccess': 1, 'invisible': 2, '1': 1, '2': 2, } def hidepid_found(): """ Search for line like "proc /proc proc defaults,hidepid=2,gid=clsupergid 0 0" in /etc/fstab Return True if /proc is mounted with hidepid option in /etc/fstab """ fstab = '/etc/fstab' try: with open(fstab, 'r', encoding='utf-8') as f: for line in f: line = line.strip() if line and not line.startswith('#'): splitted_line = line.split() if splitted_line and splitted_line[0] == 'proc' and 'hidepid=' in splitted_line[3]: return True except (IOError, IndexError) as e: print('Error: failed to parse', fstab, ':', str(e)) return False def execute(cmd, verbose): if verbose: print('executing', ' '.join(cmd)) return subprocess.call(cmd) def remount_proc(verbose=False): """ Remount /proc with hidepid=2 option when needed """ # In latest versions of the kernel on CL8 # no need to remount /proc with hidepid option # because it is synchronized with fs.proc_can_see_other_uid option if proc_can_see_other_uid_and_hidepid_synced(): return if not is_panel_feature_supported(Feature.LVE): if verbose: print('environment without LVE detected - remounting /proc is skipped') return sysctl = SysCtlConf(config_file=SYSCTL_CL_CONF_FILE) if verbose: print('apply sysctl settings') if hidepid_found(): # admin can override hidepid option via /etc/fstab if verbose: print('hidepid option is found in /etc/fstab - remounting /proc with options from /etc/fstab') return execute(['/bin/mount', '-o', 'remount', '/proc'], verbose) proc_can_see_other_uid = sysctl.get('fs.proc_can_see_other_uid') super_gid = sysctl.get('fs.proc_super_gid') if proc_can_see_other_uid != '0': if verbose: print('virtualized procfs feature is not enabled in sysctl conf - disable hidepid') return execute(['/bin/mount', '-o', 'remount,hidepid=0,gid=0', '/proc'], verbose) if verbose: print('enable hidepid for /proc') return execute(['/bin/mount', '-o', 'remount,hidepid=2,gid=' + super_gid, '/proc'], verbose) def get_gid_from_mounts(): """ Retrieve hidepid gid from /proc/mounts :return: gid, 0 if absent """ lines_gen = grep(',hidepid=', '/proc/mounts') gid_prefix = ',gid=' try: for line in lines_gen: line = line.strip() if gid_prefix not in line: continue # Search gid=xxxx in line pos = line.find(gid_prefix) if pos == -1: continue pos += 5 line = line[pos:] pos = line.find(',') if pos != -1: line = line[:pos] else: pos = line.find(' ') if pos != -1: line = line[:pos] else: # Invalid or unsupported proc format return -1 return int(line) except (IOError, IndexError, ValueError): pass # hidepid not found in /proc/mounts return -1 def get_hidepid_typing_from_mounts() -> int: """ Retrieve hidepid value from /proc/mounts :return: hidepid, 0 if absent """ mounts_path = '/proc/mounts' res = 0 try: # Parse mounts file output for proc lines and get the hidepid with open(mounts_path, mode='r', encoding='utf-8') as file: for line in file: m = re.search(r'hidepid=(\d|\w+)', line) if not line.strip().startswith('proc /proc'): continue if m: res = HidepidValuesDict.get(str(m.group(1)), 0) break except (OSError, IOError, IndexError, ValueError): pass # hidepid not found in /proc/mounts return res
Upload File
Create Folder