如果用户破坏了 bashrc 命令则注销该用户

如果用户破坏了 bashrc 命令则注销该用户

当用户通过 SSH 访问我的 Linux 主机时,我会运行一个小脚本。此脚本应为用户验证和/或设置 Google Authenticator MFA 访问权限。

目前,它可以按预期工作,但有一个警告 - 在 MFA 配置过程中的任何时候,如果用户(即)CTRL+ C,则设置向导会中断,但 SSH 会话会继续。我需要它来注销尝试访问的用户。

我怎样才能实现这个目标?

这是我在文件底部添加的内容.bashrc(请注意,这是非常对我来说是新的,我愿意接受对我当前尝试的批评/改进)。

# 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

答案1

您可以添加行

trap '' 2

在脚本开始时禁用CTRL+C

trap 2

最后启用CTRL+C功能。

这将阻止用户阻止脚本执行。

请注意,这应该添加到 /etc/bashrc,使其成为系统范围的,而不是用户可修改的

https://www.cyberciti.biz/faq/unix-linux-shell-scripting-disable-controlc/

相关内容