É possível digitar a senha do sudo apenas uma vez e configurá-lo para não exigir a senha em outros terminais?

33

Entro no meu primeiro sudocomando. Eu digito minha senha. Por um tempo, não precisarei digitar minha senha para os comandos sudo subsequentes.

Agora a pergunta. Eu sou alguém que abre muitos terminais. Seria muito conveniente se eu não precisar digitar senhas quando usar sudoos terminais que abro após o meu primeiro sudo, pelo curto período de tempo em que não precisarei digitar a senha do sudo no terminal a partir do qual usei o sudo. a primeira vez. (Desculpe pela frase longa!)

É possível? Se não, por que? Se sim, como?

daltonfury42
fonte
4
Você considerou que, ao fazer isso, está abrindo a falha de segurança que esse mecanismo existe para fechar? O motivo pelo qual você deve digitar sua senha com o sudo é proteger-se contra a circunstância de que um invasor de alguma forma obteve acesso a uma sessão de login em seu nome. Se você desabilitá-lo e alguém conseguir sequestrar uma de suas sessões de terminal (todas elas estão no mesmo console?) Ou de alguma outra maneira obter acesso a uma sessão de login em seu nome sem saber sua senha, será capaz de executar qualquer comando como root. Não é um cenário muito provável, mas algo que você deve considerar.
Pepijn Schmitz

Respostas:

52

Claro que é. Execute sudo visudoe adicione esta linha ao seu sudoersarquivo:

Defaults        !tty_tickets

Como explicado em man sudoers:

 tty_tickets       If set, users must authenticate on a per-tty basis.
                   With this flag enabled, sudo will use a separate record
                   in the time stamp file for each tty.  If disabled, a
                   single record is used for all login sessions.  This
                   flag is on by default.

Ao tty_ticketsdesativar (é isso que !significa), você permite que uma única autenticação seja compartilhada por várias sessões.

terdon
fonte
1
A única coisa que faço de diferente aqui ao aconselhar os usuários é usar um arquivo sudoers.d. Dessa forma, se eles, de alguma forma, estragarem muito facilmente a recuperação, exclua esse arquivo. Ex. sudo visudo -f /etc/sudoers.d/01_file
doug
O que acontece quando o tempo limite do sudo termina? ou executar algo parecido sudo -k?
Maythux
@ Maythux, você precisa inseri-lo novamente. Isso apenas faz com que uma única identificação funcione para todas as sessões do shell. Nada mais.
terdon
@ user3073656 ah, legal, isso faz mais sentido :). Sim, por favor, vou excluir o meu.
terdon
Devo observar que, se eu usar esse método, a senha expirará apenas no tempo limite de 15 minutos, mesmo se eu reiniciar, o que representa uma preocupação de segurança. Então, talvez adicionar sudo -ka /etc/rc6.d?
precisa saber é o seguinte