PHP 8.2.30
Preview: cagefs_enter_site.py Size: 1.83 KB
//opt/cloudlinux/venv/bin/cagefs_enter_site.py

#!/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())

Directory Contents

Dirs: 0 × Files: 56

Name Size Perms Modified Actions
1.65 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
915 B lrw-r--r-- 2026-01-20 13:01:48
Edit Download
2.14 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
8.82 KB lrw-r--r-- 2026-01-20 13:01:48
Edit Download
202 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
12.89 KB lrwxr-xr-x 2026-03-02 11:08:26
Edit Download
1.83 KB lrwxr-xr-x 2026-03-02 11:08:26
Edit Download
210 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
3.64 KB lrwxr-xr-x 2026-02-10 15:06:06
Edit Download
4.51 KB lrwxr-xr-x 2026-02-10 15:06:06
Edit Download
204 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
204 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
204 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
3.83 KB lrwxr-xr-x 2026-02-10 15:06:06
Edit Download
2.46 KB lrwxr-xr-x 2026-03-02 11:08:26
Edit Download
686 B lrw-r--r-- 2026-02-10 15:06:06
Edit Download
211 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
197 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
208 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
205 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
205 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
205 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
203 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
204 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
1.84 KB lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
1.63 KB lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
198 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
232 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
202 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
1.12 KB lrw-r--r-- 2026-02-17 11:00:07
Edit Download
202 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
233 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
206 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
237 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
237 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
237 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
905 B lrw-r--r-- 2026-02-10 15:06:06
Edit Download
202 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
210 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
201 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
202 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
200 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
206 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
222 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
212 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
198 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
210 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
15.59 KB lrwxr-xr-x 2026-01-07 22:45:27
Edit Download
15.59 KB lrwxr-xr-x 2026-01-07 22:45:27
Edit Download
15.59 KB lrwxr-xr-x 2026-01-07 22:45:27
Edit Download
208 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
208 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
196 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
196 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
603 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download
227 B lrwxr-xr-x 2026-01-20 13:01:48
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).