Esta é uma ilustração da diferença entre autenticação e autorização .
O Sudo é principalmente uma ferramenta para autorização. Sua tarefa é determinar se você tem permissão para executar um comando com privilégios elevados e, se estiver, para executar esse comando. Uma entrada como
bruno ALL = (ALL): ALL
no arquivo sudoers
permite ao usuário bruno
executar qualquer comando com qualquer privilégio.
Para aplicar esta regra, o Sudo precisa saber que o usuário invocando é de fato bruno
. Em princípio, ele pode confiar no mecanismo de autenticação do sistema: se você puder executar comandos como bruno
, isso significa que você já foi autenticado como bruno
. No entanto, uma vez que o uso do Sudo pode ter grandes conseqüências, o Sudo requer alguma autenticação extra: você precisa digitar sua senha novamente, às vezes. Isso significa que, se você deixar seu console desacompanhado e um transeunte conseguir executar o comando como bruno
, ele não poderá usar o Sudo: ele poderá danificar sua conta, mas não o restante. sistema.
Outra vantagem de solicitar uma senha é que ela avisa que algo incomum está ocorrendo. Por exemplo, um aplicativo não pode chamar silenciosamente sudo
: ele precisaria pedir sua senha e um prompt inesperado de senha alertaria você de que algo ruim está ocorrendo.
Na prática, pedir uma senha toda vez que você executar o Sudo seria chato. Portanto, o comportamento padrão é comprometer: peça uma senha a cada poucos minutos. Dessa forma, um passante ou aplicativo pode causar danos executando sudo
somente se você tiver feito isso nos últimos minutos.