linux tux badge

Altere o tempo máximo de cada sessão do SUDO

O comando sudo é o que permite a um usuário normal ou ao sysadmin administrar o sistema, sem precisar autenticar como root.
Com o sudo, você executa rapidamente uma tarefa – investido de superpoderes – e volta ao prompt de seu usuário normal em seguida.
Dar acesso a este recurso, pode ser uma forma mais segura de conceder poderes administrativos a usuários normais do seu sistema — sem revelar a senha do root.
Como comportamento padrão, uma sessão do sudo dura 15 minutos. Durante este período de tempo, não é pedido qualquer senha ao usuário.
Se você acredita que este tempo é muito curto ou muito longo, é fácil alterá-lo.

No meu caso, acredito que um tempo de sessão entre 1 e 5 minutos é o suficiente para realizar a maioria das pequenas tarefas administrativas do nosso dia a dia.

Quando é necessário executar vários comandos com privilégios administrativos (e que irão demorar mais do que 5 minutos para serem executados), prefiro digitar a minha senha algumas vezes a mais — sem problemas.


Por outro lado, este post ensina a executar vários comandos, em fila, usando o sudo, sem precisar se preocupar com a expiração do tempo. Recomendo a leitura.

Como configurar o tempo de expiração da sessão do sudo

A maneira adequada de ajustar os parâmetros do sudo é através do visudo.

O visudo edita o arquivo sudoers de maneira segura — protegendo-o contra alterações simultâneas e fazendo verificação básica de erros.

Nas grandes distribuições, como Debian e no Ubuntu, o programa irá abrir, por padrão, o editor de textos Nano.
Neste caso, quando terminar a edição, use as combinações de teclas ‘Ctrl-o’ e ‘Ctrl-x’, para gravar e sair do editor.
Se, na sua distro, o editor padrão for o vi ou o vim, tecle ‘Esc’ e, em seguida, ‘:wq’ e ‘Enter’, quando terminar de alterar o sudoers.
Você pode rodar o visudo com o próprio sudo:

sudo visudo

Em seguida, localize a linha (que deve estar no começo):


Defaults        env_reset

e altere-a para


Defaults        env_reset,timestamp_timeout=5

Como eu já disse, prefiro que o valor da minha variável timestamp_timeout seja menor ou igual a 5 (minutos). Você deve usar o valor que considerar mais adequado às suas necessidades.
sudo sudoers environment variables

Como evitar que a sessão do sudo expire

Se você precisa que a sua sessão fique ativa indefinidamente (ou pelo menos até você se desautenticar do sistema), use o sudo combinado com as seguintes opções:


sudo -s

[sudo] senha para justincase: 

Outros usuários preferem usar o sudo para logar-se diretamente como root:


sudo su

Em qualquer um dos casos, quando terminar, use ‘exit’ para sair:

root@inspiration:/home/justincase# exit
exit

Se você precisa executar uma sequencia de comandos e não deseja ter que ficar voltando para digitar a senha, siga esta dica.

Como tornar o sudo mais seguro

Há alguns riscos em potencial, a considerar, quando estiver usando o comando sudo.
Podem ser evitados com algumas configurações no sudoers.
Como padrão, o sudo manterá sua senha por 5 minutos.
Dentro desta janela de tempo, caso você se ausente fisicamente da máquina, alguém pode adquirir o controle dela usando o sudo.
Para isto, bastaria abrir uma nova shell, ainda antes de expirar a validade da sessão aberta:


sudo /bin/bash

Reduzir o tempo de cada sessão é uma medida eficaz. Mas é mais seguro ajustar o sudo para expirar logo após o comando dado. Desta forma, o usuário será obrigado a fornecer sua senha a cada comando administrativo.
Para isto, basta reduzir a zero o tempo de espera do timestamp:


Defaults    timestamp_timeout=0

Desta forma, você se mantém do lado mais seguro.

Publicado por

Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como “Rick and Morty” e “BoJack Horseman”.
Me siga no Twitter e vamos trocar ideias!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *