Veja se o modo sudo está ativado (a senha é armazenada em cache) no prompt da linha de comando

3

Eu quero saber se é possível indicar na linha de comando (idealmente no prompt), se o modo sudo está ativado.

Por modo sudo , quero dizer que já inseri minha senha corretamente uma vez nesta sessão shell e ainda não expirou, mas ainda está em cache.

Em outras palavras, posso dizer de alguma forma se o comando sudo que eu vou executar irá me pedir minha senha ou usar as credenciais em cache?

    
por Byte Commander 18.10.2016 / 19:45

2 respostas

2

Por muito tempo, tenho usado

sudo -S true < /dev/null 2> /dev/null

Você pode tentar, mas uma atualização recente parece ter quebrado isso, já que agora tenho uma falha de segmentação.

Você pode tentar sudo -n true 2> /dev/null (no -v ). Isso parece estar funcionando para mim sem renovar o tempo limite.

Você pode executar isso no seu prompt de várias maneiras, incluindo algo como:

PS1='\u:\w$(sudo -n true 2> /dev/null && echo " : sudo :") $ '

Isso depende da opção promptvars , que é ativada por padrão.

Observe que, depois que o prompt é emitido, o indicador não é atualizado novamente. Portanto, se o prompt ficar lá até o tempo limite expirar, isso pode indicar que sudo está ativo, mesmo que tenha expirado.

    
por Dennis Williamson 06.04.2017 / 22:54
1

Não há nenhum comando para mostrar diretamente o tempo restante de credenciais em cache, você teria que fazer o script.

Em link

sudo -nv 2> /dev/null

dará um valor de saída de 0 se a senha for armazenada em cache, você poderá modificar o script nesse link ou escrever o seu próprio.

Como alternativa, os registros de data e hora são armazenados em /var/lib/sudo , portanto você provavelmente poderia escrever um script para exibir ou verificar o registro de data e hora também.

    
por Panther 18.10.2016 / 20:22