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)
ðŸ“
clcagefslib
ðŸ“
clcommon
ðŸ“
clconfig
ðŸ“
clconfigure
📄
clcontrollib.py
(51.73 KB)
ðŸ“
cldashboard
📄
cldetectlib.py
(18.13 KB)
📄
cldiaglib.py
(45.84 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: clsetuplib.py
# -*- coding: utf-8 -*- # CLSETUP python lib # # 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 # Classes: # # Kernel # check min kernel for securelinks # Setup: # # setup apache gid for securelinks # setup nagios import grp import os import pwd import subprocess import sys import cldetectlib from cl_proc_hidepid import remount_proc from clcommon.sysctl import SYSCTL_CL_CONF_FILE, SysCtlConf # Kernel Version Class class KernelVersion: _SECURELINKS_MIN_KERNEL = ['1','1','95'] _system_kernel = '' _cl_kernel = True def __init__(self): with subprocess.Popen( ['uname', '-r'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, ) as proc: out, _ = proc.communicate() if proc.returncode != 0: print('error: subprocess call error. Cant\'t get current kernel version') sys.exit(1) if out.find('lve') != -1: self._system_kernel = out.split('lve')[1].split('el')[0][:-1].strip().split('.') print(self._system_kernel) else: self._cl_kernel = False # Check if system kernel newer then securelinks min kernel def securelinks_kernel_requirement(self): if self._cl_kernel: return ( self._system_kernel >= self._SECURELINKS_MIN_KERNEL and os.path.isfile('/proc/sys/fs/symlinkown_gid') ) print('error: Feature is not supported on non CL kernel.') sys.exit(1) # return _SECURELINKS_MIN_KERNEL def get_securelinks_min_kernel(self): return 'lve' + '.'.join(self._SECURELINKS_MIN_KERNEL) sysctl = SysCtlConf(config_file=SYSCTL_CL_CONF_FILE) def set_securelinks_gid(apache_gid): """ Change /etc/sysctl.conf for apache gid :param apache_gid: id of apache's group :return: None """ symlink_command = 'fs.symlinkown_gid' sysctl.set(symlink_command, apache_gid) def _add_to_super_gid(user): """ Add user to the group specified by fs.proc_super_gid. If fs.proc_super_gid is 0 (means undefined) or group doesn't really exists then create "clsupergid" group, configure it as fs.proc_super_gid and add user to this group """ sgid_key = 'fs.proc_super_gid' try: # sysctl.get may return empty string in some cases like cldeploy # when CL kernel is not loaded yet and proc has no such param proc_super_gid = int(sysctl.get(sgid_key)) except ValueError: proc_super_gid = 0 try: # Check that group with this gid really exists, and if not, then reset # it to undefined so it will be replaced with clsupergid below grp.getgrgid(proc_super_gid).gr_name except KeyError: proc_super_gid = 0 if proc_super_gid == 0: # Create and configure group if it was undefined sgid_name = 'clsupergid' subprocess.run(f'groupadd -f {sgid_name}', shell=True, executable='/bin/bash', check=False) proc_super_gid = grp.getgrnam(sgid_name).gr_gid sysctl.set(sgid_key, proc_super_gid) # If user already in this group or it's primary group == proc_super_gid # this will do nothing subprocess.run(f'usermod -a -G {proc_super_gid} {user}', shell=True, executable='/bin/bash', check=False) def setup_nagios(do_remount_proc=True): """ Add nagios to configured fs.proc_super_gid group """ if not cldetectlib.get_nagios(): return # Nothing to do _add_to_super_gid('nagios') # CAG-796: use hidepid=2 when mounting /proc if do_remount_proc: remount_proc() def setup_mailman(): """ Detect "mailman" and add it to fs.proc_super_gid group """ if not os.path.isdir('/usr/local/cpanel/3rdparty/mailman'): return try: pwd.getpwnam('mailman') except KeyError: return _add_to_super_gid('mailman') def setup_supergids(): """ Configure "special" users to be in fs.proc_super_gid group, if it's necessary. If this GID was undefined(0) then create and setup special clsupergid group """ setup_nagios(do_remount_proc=False) setup_mailman() # CAG-796: use hidepid=2 when mounting /proc remount_proc()
Upload File
Create Folder