Em uma configuração típica, o comando é irrelevante. Você precisa digitar sua senha na primeira vez que usar o sudo, e você não precisará da sua senha nesse shell específico pelos próximos 15 minutos.
Do ponto de vista do computador, não existe um “comando que precise de sudo”. Qualquer usuário pode tentar executar qualquer comando. O resultado pode ser apenas uma mensagem de erro como "Permissão negada" ou "Nenhum arquivo ou diretório", mas é sempre possível executar o comando.
Por exemplo, se você executar du
em uma árvore de diretórios com conteúdo que você não tem permissão para acessar, você receberá erros de permissão. Isso é o que "permissão negada" significa. Se você executar sudo du
, sudo executará du
como root, para que você não receba erros de permissão (esse é o ponto da conta root: root¹ sempre tem permissão). Quando você executar sudo du
, du
será executado como raiz e sudo
não estará envolvido após o início de du
. Se du encontrar erros de permissão é completamente irrelevante para o funcionamento do sudo.
Existem comandos que precisam do sudo para fazer algo útil . Utilidade é um conceito humano. Você precisa usar o sudo (ou alguns outros métodos para executar o comando como root) se o comando fizer algo útil quando executado como root, mas não quando for executado na sua conta.
Se o sudo pede sua senha depende de duas coisas.
- Com base na configuração, o sudo decide se você precisa ser autenticado. Por padrão, o sudo requer uma senha. Isso pode ser desativado de várias maneiras, incluindo a configuração da opção
authenticate
como false e com uma regra aplicável com a tagNOPASSWD
. - Se o sudo exigir sua senha, talvez seja um conteúdo usar um valor em cache. Tudo bem porque a razão pela qual o sudo precisa da sua senha não é para autenticar quem está chamando (sudo sabe o que o usuário a invocou), mas para confirmar que ainda é você nos comandos e não alguém que tenha controle sobre o teclado. Por padrão, o sudo está disposto a acreditar que você ainda está nos comandos se você inseriu sua senha há menos de 15 minutos (isso pode ser alterado com a opção
timeout
). Você precisa ter digitado a senha no mesmo terminal (para que, se você permanecer logado em um terminal, deixar o terminal sem supervisão e usar outro terminal, alguém não pode tirar proveito disso para usar o sudo no outro terminal - mas esta é uma vantagem muito fraca e pode ser desativada configurando a opçãotty_tickets
para false).
¹ quase, mas isso está além do escopo deste segmento.