O sudo realmente faz você torcer por um tempo?
A página de manual para sudo
explica:
There is no easy way to prevent a user from gaining a root shell if that user is allowed to run arbitrary commands via sudo.
Assim, se você executar sudo something
e digitar sua senha; então, se você não bloquear seu terminal, outro usuário poderá executar sudo su -
dentro de 5 minutos, o que lhe dará acesso ao shell root, se seu sudo permitir que você execute comandos arbitrários. Para mais informações sobre o tempo limite, citarei esta seção relevante da página de manual acima:
The sudoers policy caches credentials for 5 minutes, unless overridden in sudoers
. By running sudo
with the -v
option, a user can update the cached credentials without running a command.
Por que recebo permissão negada?
sudo
can não interfere no funcionamento do bash, por isso não consegue lidar bem com recursos como redirecionamento de arquivos e outros recursos que funcionam fora do comando. Para evitar isso, você terá que pedir a um shell de root para executar o comando completo, de modo que ele encaminhe o caractere de redirecionamento para um ambiente com raiz, em vez de analisá-lo.
Como mostrado pelo outro usuário, isso é tão simples quanto executar
sudo bash -c 'date > file'
ou reescrevê-lo de tal forma que você não precisa que o parâmetro de redirecionamento seja executado como root, assim:
date | sudo tee file