Usuário de logoff se eles quebrarem um comando bashrc

1

Estou executando um pequeno script quando um usuário acessa meu host Linux via SSH. Este script deve verificar e / ou configurar o acesso do Google Authenticator MFA para o usuário.

Agora ele funciona como pretendido com uma ressalva - a qualquer momento durante o processo de configuração MFA, se o usuário (ou seja) Ctrl + C 's, a configuração o assistente é interrompido, mas a sessão do SSH continua. Eu preciso fazer o logout do usuário tentando acessar.

Como posso conseguir isso?

Isto é o que eu adicionei na parte inferior do meu arquivo .bashrc (por favor note que este é muito novo para mim e que eu estou aberto a críticas / melhorias em minha tentativa atual) .

# MFA validation/configuration

if [[ -n $SSH_CONNECTION ]] ; then
        echo "SSH connection to remote host successful."
        echo "testing if MFA is configured..."

        # is this test enough?
        file="$HOME/.google_authenticator"

        if [ -f "$file" ] ; then
                printf "MFA configured, you may proceed.\n"
        else
                printf "MFA not configured; running setup wizard.\n"

                # the command runs, but the else bit is never reached
                if google-authenticator ; then
                        # I reach this point if I go to the end of the wizard
                        echo "MFA setup successful"
                else
                        # this point is never reached
                        echo "MFA setup failed - logging you out"
                        exit
                fi
        fi
fi
    
por Joum 27.12.2016 / 14:01

1 resposta

3

Você pode adicionar linha

trap '' 2

no início do seu script para desativar CTRL + C e

trap 2

no final para habilitar CTRL + C funcional.

Isso impedirá que o usuário interrompa sua execução de script.

Observe que isso deve ser adicionado ao / etc / bashrc, tornando-o amplo e não modificável pelo usuário

link

    
por 27.12.2016 / 14:12