A variável PATH pode estar corrompida?

2

Instalei o rbenv, um programa de gerenciamento de versão em ruby. Eu olhei no arquivo .bashrc e notei que a variável path foi alterada conforme abaixo:

export PATH="$HOME/.rbenv/bin:$PATH"

Acho que a parte ": $ PATH" foi incluída para incluir o conteúdo do caminho antigo. Gostaria de saber o que aconteceria se um programa que modifica a variável de caminho não incluir a parte ": $ PATH". Não seria possível executar alguns programas a partir da linha de comando, pois os diretórios bin nos quais eles residem não são mais incluídos na nova variável path?

    
por user3457382 08.07.2014 / 21:49

3 respostas

2

Você está correto. Pacotes de terceiros devem, portanto, apenas estender o caminho atual, não limitá-lo.

    
por Jos 08.07.2014 / 21:55
1

PATH é uma lista de diretórios separados por dois pontos que seu shell ( bash , fish , ksh , sh , etc) usa para localizar algo a ser executado. Se a primeira palavra da linha que você digita no shell não for um shell embutido ou um alias, o shell percorre a lista de diretórios em $PATH , procurando por um arquivo executável com o mesmo nome da primeira palavra do comando que você digitado.

command not found de erros para comandos comuns ( da/media/w3/0123-4567/PODCASTS/2016-Nov-27/loe-wildlife-decline.mp3te , ls , ...) é indicativo de um PATH malformado. Uma emergência PATH (o suficiente para permitir que você corrija o problema pode ser definido com export PATH=/usr/bin:/bin:/usr/local/bin:/snap/bin .

Muitos erros de PATH são erros de sintaxe de shell ( Espaço antes ou depois de = . É PATH=value , sem espaços).

Em relação à "corrupção de caminho", se eu tiver criado uma versão "especial" de ls , armazenada em /.evil/bin/ls , E posso corromper seu caminho para que ele tenha /.evil/bin ANTES /bin , quando você digita ls , o shell executará /.evil/bin/ls em vez de /bin/ls . Um gotcha bem conhecido, mas o seu sistema está completamente penetrado no momento em que se torna útil.

    
por waltinator 21.11.2016 / 20:08
0

Você poderia executá-los, você só precisa especificar o caminho completo. A modificação de PATH não modifica as permissões associadas.

    
por muru 08.07.2014 / 21:56