CasperSecurity

Current Path : /lib/systemd/system-generators/
Upload File :
Current File : //lib/systemd/system-generators/cloud-init-generator

#!/bin/sh
set -f

LOG=""
DEBUG_LEVEL=1
LOG_D="/run/cloud-init"
LOG_F="/run/cloud-init/cloud-init-generator.log"
ENABLE="enabled"
DISABLE="disabled"
RUN_ENABLED_FILE="$LOG_D/$ENABLE"
RUN_DISABLED_FILE="$LOG_D/$DISABLE"
CLOUD_TARGET_NAME="cloud-init.target"
# lxc sets 'container', but lets make that explicitly a global
CONTAINER="${container}"

# start: template section
CLOUD_SYSTEM_TARGET="/lib/systemd/system/cloud-init.target"
    dsidentify="/usr/lib/cloud-init/ds-identify"
# end: template section

debug() {
    local lvl="$1"
    shift
    [ "$lvl" -gt "$DEBUG_LEVEL" ] && return
    if [ -z "$LOG" ]; then
        { [ -d "$LOG_D" ] || mkdir -p "$LOG_D"; } &&
            { : > "$LOG_F"; } >/dev/null 2>&1 && LOG="$LOG_F" ||
            LOG="/dev/kmsg"
    fi
    echo "$@" >> "$LOG"
}

main() {
    local normal_d="$1" early_d="$2" late_d="$3"
    local target_name="multi-user.target" gen_d="$early_d"
    local link_path="$gen_d/${target_name}.wants/${CLOUD_TARGET_NAME}"
    local ds="" ret=""

    debug 1 "$0 normal=$normal_d early=$early_d late=$late_d"
    debug 2 "$0 $*"

    # ds=found => enable
    # ds=notfound => disable
    # <any> => disable
    debug 1 "checking for datasource"

    if [ ! -x "$dsidentify" ]; then
        debug 1 "no ds-identify in $dsidentify"
        ds=0
    fi
    $dsidentify
    ds=$?
    debug 1 "ds-identify rc=$ds"

    if [ "$ds" = "1" -o "$ds" = "2" ]; then
        if [ "$ds" = "1" ]; then
            debug 1 "cloud-init is enabled but no datasource found, disabling"
        else
            debug 1 "cloud-init is disabled by kernel command line or etc_file"
        fi
        if [ -f "$link_path" ]; then
            if rm -f "$link_path"; then
                debug 1 "disabled. removed existing $link_path"
            else
                ret=$?
                debug 0 "[$ret] disable failed, remove $link_path"
            fi
        else
            debug 1 "already disabled: no change needed [no $link_path]"
        fi
        if [ -e "$RUN_ENABLED_FILE" ]; then
            debug 1 "removing $RUN_ENABLED_FILE and creating $RUN_DISABLED_FILE"
            rm -f "$RUN_ENABLED_FILE"
        fi
        : > "$RUN_DISABLED_FILE"

    elif [ "$ds" = "0" ]; then
        if [ -e "$link_path" ]; then
                debug 1 "already enabled: no change needed"
        else
            [ -d "${link_path%/*}" ] || mkdir -p "${link_path%/*}" ||
                debug 0 "failed to make dir $link_path"
            if ln -snf "$CLOUD_SYSTEM_TARGET" "$link_path"; then
                debug 1 "enabled via $link_path -> $CLOUD_SYSTEM_TARGET"
            else
                ret=$?
                debug 0 "[$ret] enable failed:" \
                    "ln $CLOUD_SYSTEM_TARGET $link_path"
            fi
        fi
        if [ -e $RUN_DISABLED_FILE ]; then
            debug 1 "removing $RUN_DISABLED_FILE and creating $RUN_ENABLED_FILE"
            rm -f $RUN_DISABLED_FILE
        fi
        : > "$RUN_ENABLED_FILE"
    else
        debug 0 "unexpected result '$result' 'ds=$ds'"
        ret=3
    fi
    return $ret
}

main "$@"
Hacker Blog, Shell İndir, Sql İnjection, XSS Attacks, LFI Attacks, Social Hacking, Exploit Bot, Proxy Tools, Web Shell, PHP Shell, Alfa Shell İndir, Hacking Training Set, DDoS Script, Denial Of Service, Botnet, RFI Attacks, Encryption
Telegram @BIBIL_0DAY