Adiciona uma segunda autenticação ao login do usuário

0
trap '' 2

code='oathtool --base32 --totp "xxxxxxxxxxxx"'
echo -n Enter Code:
read -s password
echo ""
if [ "$password" == "$code" ]; then
        echo "You are allowed in"
else
        exit
fi

trap 2

Está colocando este código no topo da minha .profile outra forma de adicionar autenticação de dois fatores ou isso pode ser ignorado?

Eu sei que você pode fazer algo como this para adicionar 2 autenticação de fator, mas eu quero ser capaz de personalizá-lo.

    
por maxisme 25.05.2016 / 21:36

1 resposta

2

Não!

O problema básico é que .profile só é lido depois que você está logado com sucesso! Nesse ponto, uma shell completa já está em execução, e a maioria das shells são feitas para atender o usuário, não , para impedi-las de fazer o que quiserem.

Vamos ver, por exemplo:

# echo -en "echo byebye; exit"  > ~foo/.profile
# ssh foo@localhost
foo@localhost's password: 
[...]
byebye
Connection to localhost closed.

Mas ainda posso dizer ao shell para fazer algo completamente diferente. (Como executar outro shell.)

# ssh foo@localhost -t "/bin/sh"
foo@localhost's password: 
$ id
uid=1001(foo) gid=1001(foo) groups=1001(foo)

Você poderia alterar o shell do usuário para algo mais restrito, um programa projetado apenas para solicitar o OTP e depois iniciar o shell. Mas isso tornaria difícil fazer qualquer coisa que requer a execução de outro shell. Além disso, tudo o que é feito no domínio do usuário pode muito provavelmente ser alterado pelo usuário, e isso não é algo que se deseja com autenticação.

Por favor, faça a autenticação onde ele pertence, que é o PAM na maioria dos Linuxes.

    
por 25.05.2016 / 22:06