|
Server IP : 2a02:4780:11:1359:0:1d43:a566:2 / Your IP : 216.73.216.52 Web Server : LiteSpeed System : Linux in-mum-web1259.main-hosting.eu 4.18.0-553.37.1.lve.el8.x86_64 #1 SMP Mon Feb 10 22:45:17 UTC 2025 x86_64 User : u490972518 ( 490972518) PHP Version : 5.6.40 Disable Function : system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail MySQL : ON | cURL : ON | WGET : ON | Perl : OFF | Python : ON Directory (0555) : /sbin/ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
#!/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())