CasperSecurity

Current Path : /snap/core24/current/usr/share/subiquity/
Upload File :
Current File : //snap/core24/current/usr/share/subiquity/console-conf-wrapper

#!/bin/bash
set -e

trap true HUP INT QUIT TSTP
echo_on () { stty echo; }
trap echo_on EXIT

# agetty only sets ICRNL if it has read the username and seen whether
# it was terminated by CR or NL. We pass -n to agetty so that hasn't
# happened and need to force it on. Yay UNIX!
stty icrnl -echo

redisplay_and_exit() { exit 42; }

if [ -e /run/snapd-recovery-chooser-triggered ]; then
    # make sure the chooser binary is there to avoid getting into an awkward
    # state and locking out the user
    if [ -x /usr/lib/snapd/snap-recovery-chooser ]; then
        # when recovery chooser is invoked it takes over the terminal
        /usr/lib/snapd/snap-recovery-chooser
        rval=$?
        if [ "$rval" -eq 0 ]; then
            redisplay_and_exit
        else
            exit $rval
        fi
    fi
    if [ -e /var/lib/console-conf/complete ]; then
        exit 0
    fi
fi

# always prefer to use modeevn if it is available
if [ -e "/var/lib/snapd/modeenv" ]; then
    mode="$(/usr/libexec/core/get-mode mode)"
else
    mode="$(/usr/libexec/core/get-arg snapd_recovery_mode)"
fi

if [ "${mode}" = "install" ]; then
    echo "Installing the system, please wait for reboot"
    # XXX: replace with something more user friendly after the beta?
    journalctl -u snapd.service -f
    sleep infinity
fi

if [ "$(snap managed)" = "true" ]; then
    # check if we have extrausers that have no password set
    if grep -qE '^[-a-z0-9+.-_]+:x:' /var/lib/extrausers/passwd && ! grep -qE '^[-a-z0-9+.-_]+:\$[0-9]+\$.*:' /var/lib/extrausers/shadow; then
        tty=$(tty)
        tty="$(echo "${tty#/dev/}" | tr '/' '-')"
        readargs=()
        filepath="/run/console-conf/login-details-${tty}.txt"
        if [ ! -f "${filepath}" ]; then
            mkdir -p /run/console-conf
            set +e
            /usr/share/subiquity/console-conf-write-login-details > "${filepath}.tmp"
            rval=$?
            set -e
            # A exit code of 2 from console-conf-write-login-details
            # means there are no scope global IP addresses. It will
            # have printed a message saying that you can't log in
            # until the device gets an IP address so we display that
            # but check every 5 seconds if an ip address has appeared.
            if [ $rval -eq 0 ]; then
                mv "${filepath}.tmp" "${filepath}"
            elif [ $rval -eq 2 ]; then
                mv "${filepath}.tmp" "${filepath}.noip"
                filepath=${filepath}.noip
                readargs=(-t 5)
            else
                exit $rval
            fi
        fi
        cat "$filepath"
        set +e
        while :; do
            read -r "${readargs[@]}" REPLY
            if [ $? -le 128 ]; then
                # If we didn't time out, re-display everything.
                redisplay_and_exit
            fi
            if ip addr show | grep -qE "scope global"; then
                # If we timed out, but it appears that we may now have
                # an IP address, re-display everything.
                redisplay_and_exit
            fi
        done
    else
        touch /var/lib/console-conf/complete
    fi
    exit 0
fi

if [ -e /var/lib/console-conf/complete ]; then
    # we're done already
    exit 0
fi

# if there is NOT console-conf snap, exit gracefully
if [ ! -e "/snap/console-conf" ]; then
  touch /var/lib/console-conf/complete
  exit 0
fi

snap run console-conf.wait
read -r REPLY
# start the console-conf routine in snapd to delay any new refreshes, and wait
# for current refreshes to complete, this will print off messages if there are
# on-going refreshes
if snap routine console-conf-start --help >/dev/null 2>/dev/null; then
    snap routine console-conf-start
fi
# prepare host finger prints for console-conf as it cannot access sshd or host keys
mkdir -p /run/console-conf
/usr/share/subiquity/console-conf-write-login-details --host-fingerprints > /run/console-conf/host-fingerprints.txt
snap run console-conf "$@"
rval=$?
if [ ${rval} -eq 0 ]; then
  # explicitly redisplay login information from the wrapper
  redisplay_and_exit
else
  exit "$rval"
fi
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