Está adicionando ./bin uma má ideia

6

Não consigo pensar em nenhum motivo pelo qual adicionar ./bin ao meu ambiente PATH seria uma ideia muito ruim.

Eu geralmente crio bin pastas em meus projetos em que estou trabalhando e eu odeio fazer bin/command , seria legal, ter command ser apanhada pelo bash contanto que eu esteja no diretório com uma pasta bin e essa pasta bin contém um executável command .

Eu preciso convencer: D

    
por whoami 11.03.2013 / 00:53

2 respostas

4

O $ HOME / bin,. e ./bin são geralmente vistos como um risco de segurança.

para o $ HOME / bin é o problema de alguns "crackers" empurrar algum script (digamos um script chamado nano) para lá e esperar até você executar algo como sudo nano / etc / hosts para obter acesso root instantâneo (mudar o nano para vi, emacs, seja qual for, o comando não é importante, é a carga útil que ele pode executar)

para. e ./bin ainda é o mesmo problema, acrescentou um extra: trabalhando no diretório errado.

Se esses ./bin/command estão em diretórios diferentes em vez de / usr / local / bin (a solução preferida para novos scripts locais), é porque eles fazem coisas diferentes ... e se você executar o incorreto?

Se você nomear seus comandos da mesma maneira (permite chamar, atualizar, confirmar, limpar, etc), você pode estar trabalhando em um diretório, então você recebe um telefonema e muda para outro para uma verificação rápida. Depois de desligar, seu cérebro tentará retomar o que você estava fazendo e, na maioria das vezes, esquecerá o rápido "cd" que você fez (especialmente se tudo na tela parecer apontar para o diretório correto) e terminará de executar um comando errado. diretório (digamos que o script de limpeza apaga todo o seu trabalho mensal).

Pode parecer um erro inocente, mas acontece todos os dias para muitas pessoas! :)

uma boa solução alternativa (ou melhor solução) é usar o alias:

alias proj1-cleanup=/srv/proj1/bin/cleanup

e adicione no script o cd correto para garantir que ele seja executado no diretório correto.

Desta forma, jogue com o $ HOME / .alias para adicionar os vários scripts que você precisa, você tem comandos diferentes para fazer as coisas diferentes, e até mesmo se alguém crackear seu navegador para criar um arquivo $ HOME / bin / ls ou algum o usuário local cria um arquivo bin / ls em qualquer diretório, esses nunca serão executados, pois seu caminho ainda aponta para os comandos corretos.

mas ei, é uma escolha pessoal, você é quem sabe quais são seus riscos locais e o que os comandos fazem.

    
por 11.03.2013 / 01:20
0

No Ubuntu, pelo menos, isso faz parte do perfil de usuário padrão:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Eu não acho que seja um problema, mas como é gravável pelo usuário e pode interceptar comandos de forma transparente, as pessoas podem ficar nervosas com isso. Obviamente, isso é mais seguro que ./bin , no entanto.

    
por 11.03.2013 / 01:21

Tags