CasperSecurity

Current Path : /snap/core20/current/usr/share/subiquity/
Upload File :
Current File : //snap/core20/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

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
        exec /usr/lib/snapd/snap-recovery-chooser
    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="$(sed -n 's/mode=\([^[:space:]]*\)/\1/p' /var/lib/snapd/modeenv)"
else
    mode="$(sed 's/.*snapd_recovery_mode=\([^[:space:]]*\)[[:space:]].*/\1/' /proc/cmdline)"
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 "${readargs[@]}" REPLY
            if [ $? -le 128 ]; then
                # If we didn't time out, re-display everything.
                exit 0
            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.
                exit 0
            fi
        done
    else
        touch /var/lib/console-conf/complete
    fi
    exit 0
fi

cat /usr/share/subiquity/console-conf-wait
read 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
exec console-conf "$@"
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