sudo -E env PATH = $ PATH

1

O que o comando a seguir faz exatamente?

sudo -E env PATH=$PATH

Eu não consigo ter um significado simplista para o que isso faz.

Eu sei que -E passa os usuários que está invocando sudo de variáveis ambientais, mas o env ?

    
por Karl Morrison 14.06.2017 / 15:52

1 resposta

1

Nesse contexto, env imprime as variáveis de ambiente, usando um valor PATH personalizado que é interpolado pelo shell antes que sudo seja executado e transmitido por sudo na lista de argumentos. Dado que -E deve preservar o ambiente ** a configuração PATH através dos argumentos para o qual sudo deve passar através do ambiente parece redundante, embora com sudo ... env PATH="$PATH" cmd ... se possa garantir que cmd ... seja executado com uma% específica configuração dePATH livre de qualquer manipulação possível por sudo .

** Quais meios de preservação podem variar dependendo do lançamento de sudo , dado que sudo a partir de 2016 mantém a primeira variável de ambiente de qualquer duplicata versus bash e outros programas usando a final de quaisquer variáveis de ambiente duplicadas.

    
por 14.06.2017 / 16:49