Quais poderiam ser os riscos para adicionar “Defaults secure_path =” / home / username “em” / etc / sudoers "

4

Quais poderiam ser os riscos para adicionar

Defaults secure_path="/home/username" 

em /etc/sudoers ?

    
por XPDIN 10.06.2017 / 14:17

1 resposta

11

O valor secure_path , se definido, será usado como variável de ambiente PATH para os comandos executados usando sudo .

Isso significa que, quando você executa, por exemplo, sudo apt update , o sistema tentará procurar o comando apt nos diretórios especificados no secure_path , na ordem especificada.

Agora, se você adicionar um diretório ao qual os usuários não-raiz têm acesso de gravação ao secure_path , você poderá fazê-lo em duas posições:

  • anexado ao final da lista secure_path , com menos prioridade
  • insira no início ou no meio da lista secure_path , com maior prioridade.

Acrescentar ao final é quase seguro, pois, como não alterará a maneira como os comandos existentes serão resolvidos, ele permite que executáveis de um diretório diferente sejam executados sem especificar explicitamente sua localização. O fato de este diretório adicional ser gravável para usuários não-root permite que eles coloquem arquivos maliciosos lá sem privilégios elevados, então você deve ter cuidado ao digitar qualquer comando que esteja lá (voluntariamente ou por erro de digitação em outra coisa). / p>

No entanto, se você colocar seu diretório não como último elemento, mas com prioridade mais alta, o conteúdo desse diretório irá sombrear e substituir os dos locais que vêm depois dele em secure_path . Por exemplo, se você colocar seu diretório de usuários primeiro e ele contiver um executável (malicioso?) Chamado apt , na próxima vez que você executar sudo apt update você terá uma surpresa ...

Eu também nunca adicionaria diretamente o diretório home a qualquer PATH ou secure_path , mas criaria um diretório dedicado, por exemplo, /home/USERNAME/bin para isso, que contém apenas os executáveis que eu quero ter no meu PATH e nada mais.

Conclusão:

Você não deve colocar nenhum diretório em secure_path se eles forem graváveis para qualquer um, exceto o usuário root. Caso contrário, usuários normais sem privilégios elevados (incluindo malware ou invasores comprometendo tal conta) podem colocar seus próprios executáveis lá e esperar por alguém com sudo para acidentalmente (usar erros ortográficos comuns de comandos frequentemente usados como nomes de arquivos) ou executá-los de boa vontade.

Se você realmente quiser fazer isso, tente restringir as permissões de escrita para o diretório o mais rápido possível, e certifique-se de adicionar o diretório como último elemento de secure_path para evitar que algo esteja ocultando os executáveis do sistema.

Alternativas

No entanto, a maneira segura ainda permaneceria sempre apenas digitar o caminho completo para os executáveis fora do padrão secure_path se você quiser executá-los com sudo .

Você também pode usar uma substituição de comando com which para obter o caminho completo de algo no PATH de seu usuário, como

sudo $(which MY_EXECUTABLE) ARGUMENTS
    
por Byte Commander 10.06.2017 / 14:49

Tags