Linux boca.hozzt.com 4.18.0-553.8.1.lve.el8.x86_64 #1 SMP Thu Jul 4 16:24:39 UTC 2024 x86_64
LiteSpeed
: 159.253.39.62 | : 18.221.188.161
Cant Read [ /etc/named.conf ]
7.4.33
renovkoron
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
opt /
cloudlinux /
venv /
lib /
python3.11 /
site-packages /
clveconfig /
[ HOME SHELL ]
Name
Size
Permission
Action
__pycache__
[ DIR ]
drwxr-xr-x
__init__.py
645
B
-rw-r--r--
ve_config.py
2.76
KB
-rw-r--r--
ve_config_reader.py
5.43
KB
-rw-r--r--
ve_lock.py
1.43
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : ve_config.py
#!/usr/bin/python # 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 import os from xml.dom import minidom as xml from xml.parsers.expat import ExpatError from lxml import etree from .ve_lock import CONFIG_DIR, acquire_lock # Path to ve.cfg VE_CFG_PATH = os.path.join(CONFIG_DIR, 've.cfg') VE_CFG_PATH_TMP = VE_CFG_PATH + '.tmp' # It's effectively a tuple of ve_cfg and it's lve_config PARSED_XML_CACHE = (None, None,) class BadVeConfigException(Exception): def __init__(self, message='Nothing'): super().__init__( f"Unable to parse /etc/container/ve.cfg file, message: {message}" ) def get_xml_config(use_cache=True): """ Load xml config from ve.cfg 1. setup lock on file 2. read info 3. remove lock :type use_cache: bool :rtype: tuple[xml.Document, xml.Element] :raises: BadVeConfigException, LockFailedException """ global PARSED_XML_CACHE if PARSED_XML_CACHE != (None, None,) and use_cache: # Cache will be updated in save_xml() return PARSED_XML_CACHE with acquire_lock(): try: _ve_cfg = xml.parse(VE_CFG_PATH) _ve_lveconfig = _ve_cfg.getElementsByTagName("lveconfig")[0] except (OSError, IOError, ExpatError, IndexError) as e: raise BadVeConfigException('bad ve.cfg file') from e if use_cache: PARSED_XML_CACHE = _ve_cfg, _ve_lveconfig return _ve_cfg, _ve_lveconfig def get_xml_config_etree(): # type: () -> etree.ElementBase """ This method works same as get_xml_config, but returns etree object :rtype: etree.ElementTree :raises: BadVeConfigException, LockFailedException """ with acquire_lock(): try: tree = etree.parse(VE_CFG_PATH) return tree.getroot() except etree.ParseError as e: raise BadVeConfigException(str(e)) from e def save_xml(xml_document): # Update cache on save because we sometimes do re-read right after save global PARSED_XML_CACHE _ve_lveconfig = xml_document.getElementsByTagName("lveconfig")[0] PARSED_XML_CACHE = (xml_document, _ve_lveconfig,) xml_string = xml_document.toprettyxml(encoding='utf-8', indent='', newl='') xml_string = xml_string.replace(b"\n", b'').replace(b"\t", b'') new_xml = xml.parseString(xml_string) buf = new_xml.toprettyxml(encoding='utf-8') if not buf: # paranoia mode) raise RuntimeError(f"Rejected attempt to write empty {VE_CFG_PATH}") with open(VE_CFG_PATH_TMP, 'wb') as f: f.write(buf) f.flush() os.fsync(f.fileno()) os.rename(VE_CFG_PATH_TMP, VE_CFG_PATH)
Close