Por que o sudo não solicita uma senha novamente após “comando não encontrado”?

0

Eu observo esta questão abaixo:

abc@ubuntu:~$ sudo - i 
[sudo] password for abc: 
sudo: -: command not found
abc@ubuntu:~$ sudo -i
root@ubuntu:~# 

comando sudo parece falhar com erro "comando não encontrado", no entanto, para o próximo sudo tentativa com opção correta, ele tem login de root, mas desta vez não pediu senha. Por que esse comportamento estranho?

Estou fazendo essa pergunta da visão de segurança do ponto. Observe que depois de "comando não encontrado" o usuário ainda é "abc", que pode não ser admin. Ele / ela pode obter privilégios de "root" sem sequer saber a senha do sudo simplesmente emitindo "sudo -i" dentro de 15 minutos (tempo de senha em cache). Não é?

    
por Mukul Sharma 23.11.2016 / 22:06

2 respostas

3

No primeiro caso, o shell pensa que existe um comando após sudo que você está tentando executar, - , porque não existe tal comando, o shell informa que o comando não foi encontrado. Ao executar um comando precedido por sudo , por padrão, ele perguntará sua senha.

No segundo caso, o shell reconhece que você está executando o comando sudo com a opção -i . A senha não é solicitada novamente porque você digitou corretamente quando tentou executar o primeiro comando. (por padrão, armazena as credenciais em cache por 15 minutos)

    
por 23.11.2016 / 22:20
0
$man sudo
...
Security policies may support credential caching
to allow the user to run sudo again for a period
of time without requiring authentication.  The sudoers
policy caches credentials for 15 minutes, unless
overridden in sudoers(5).  By running sudo with
the -v option, a user can update the cached credentials
without running a command.
    
por 23.11.2016 / 22:14