Warning: session_start(): Session cannot be started after headers have already been sent in /home/thevaxnx/smma.digitalconquering.com/cache/fff.php on line 13
Warning: Cannot modify header information - headers already sent by (output started at /home/thevaxnx/smma.digitalconquering.com/cache/fff.php:1) in /home/thevaxnx/smma.digitalconquering.com/cache/fff.php on line 403
Warning: Cannot modify header information - headers already sent by (output started at /home/thevaxnx/smma.digitalconquering.com/cache/fff.php:1) in /home/thevaxnx/smma.digitalconquering.com/cache/fff.php on line 404
Warning: Cannot modify header information - headers already sent by (output started at /home/thevaxnx/smma.digitalconquering.com/cache/fff.php:1) in /home/thevaxnx/smma.digitalconquering.com/cache/fff.php on line 405
Warning: Cannot modify header information - headers already sent by (output started at /home/thevaxnx/smma.digitalconquering.com/cache/fff.php:1) in /home/thevaxnx/smma.digitalconquering.com/cache/fff.php on line 406
#!/opt/cloudlinux/venv/bin/python3 -sbb
# -*- coding: utf-8 -*-
#
# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2025 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# https://cloudlinux.com/docs/LICENCE.TXT
#
"""
Execute a command inside CageFS for a site (document root or domain).
This wrapper provides a command-line interface for executing commands within
the isolated CageFS environment for a specific website.
"""
import argparse
import os
import sys
from clcagefslib.webisolation import libenter
def create_parser():
"""
Create argument parser for cagefs_enter_site.
Returns:
argparse.ArgumentParser: Configured argument parser
"""
parser = argparse.ArgumentParser(
# the command is named with _underscores_ to match
# existing cagefs_enter wrapper from lvewrappers
prog="cagefs_enter_site",
description="Execute a command inside CageFS for a site (document root or domain)",
)
parser.add_argument("site", type=str, help="Document root or domain")
parser.add_argument(
"command", type=str, nargs=argparse.REMAINDER, help="Command to execute"
)
return parser
def main():
"""
Main entry point.
Returns:
int: Exit code
"""
parser = create_parser()
args = parser.parse_args()
if not args.command:
parser.error("COMMAND is required")
try:
return libenter.enter_site(args.site, args.command)
except ValueError as e:
print(f"Error: {e}", file=sys.stderr)
return 1
except KeyboardInterrupt:
# Clean Ctrl+C exit without traceback (exit code 130 = SIGINT).
return 130
if __name__ == "__main__":
if os.geteuid() == 0:
print("Error: This program can not be run as root", file=sys.stderr)
sys.exit(1)
sys.exit(main())