./bin을 추가하는 것은 나쁜 생각입니다.

./bin을 추가하는 것은 나쁜 생각입니다.

./bin이것을 내 PATH환경에 추가하는 것이 왜 정말 나쁜 생각인지 알 수 없습니다 .

나는 일반적으로 bin작업 중인 프로젝트에 폴더를 생성하지만 폴더가 있는 디렉토리에 있고 해당 폴더에 실행 파일이 포함되어 있는 한 이 작업을 수행하는 것을 싫어합니다. 그런 다음 bash는 bin/command괜찮을 폴더를 선택합니다.commandbinbincommand

설득력이 필요해요 :D

답변1

, $HOME/bin일반적 .으로 ./bin보안 위험으로 간주됩니다.

$HOME/bin문제의 경우 일부 "크래커"는 일부 스크립트(예: nano라는 스크립트)를 해당 디렉토리에 푸시한 다음 이와 같은 스크립트를 실행하여 sudo nano /etc/hosts즉각적인 루트 액세스 권한을 얻을 때까지 기다립니다(nano를 vi, emacs 등으로 변경, 명령은 실행되지 않음). 실행할 수 있는 페이로드만 중요합니다).

.및 의 경우 ./bin여전히 동일한 문제가 발생합니다. 잘못된 디렉터리에서 실행되는 추가 프로그램을 추가합니다.

이러한 ./bin/commands가 /usr/local/bin(새 로컬 스크립트에 선호되는 솔루션)과 다른 디렉터리에 있는 경우 이는 다른 작업을 수행하기 때문입니다. 잘못 실행되면 어떻게 될까요?

명령에 동일한 방식으로 이름을 지정하는 경우(먼저 호출한 다음 업데이트, 커밋, 정리 등) 디렉토리에서 작업할 수 있으며, 한 호출을 받은 다음 빠른 확인을 위해 다른 호출로 전환하게 됩니다. 전화를 끊고 나면 뇌는 하던 일을 다시 시작하려고 시도할 것입니다. 대부분의 경우 빠른 "cd"를 수행했다는 사실을 잊어버리고(특히 화면의 모든 항목이 올바른 디렉토리를 가리키고 있는 것처럼 보이는 경우) 잘못된 경로로 마무리합니다. 명령의 디렉터리(예: 한 달 동안 모든 작업을 지우는 정리 스크립트).

이것은 순진한 실수처럼 보일 수도 있지만 매일 많은 사람들에게 일어나는 일입니다! :)

좋은 해결 방법(또는 더 나은 솔루션)은 별칭을 사용하는 것입니다.

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

올바른 스크립트를 추가하여 cd올바른 디렉터리에서 실행되는지 확인하세요.

이렇게 하면 $HOME/.alias필요한 다양한 스크립트를 추가함으로써 다른 명령을 사용하여 다른 작업을 수행할 수 있습니다. 누군가가 브라우저를 해킹하여 파일을 생성하거나 $HOME/bin/ls일부 로컬 사용자가 디렉터리에 bin/ls 파일을 생성하더라도 이러한 파일은 절대 실행되지 않습니다. 경로는 여전히 올바른 명령을 가리킵니다.

하지만 이는 개인적인 선택입니다. 로컬 위험이 무엇인지, 명령이 수행하는 작업은 무엇인지 알고 있습니다.

답변2

적어도 Ubuntu에서는 이는 기본 사용자 프로필의 일부입니다.

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

이것이 문제가 된다고 생각하지는 않지만, 사용자가 쓸 수 있고 명령을 투명하게 가로챌 수 있기 때문에 사람들이 불안할 수도 있습니다. 그러나 이것은 확실히 ./bin.

관련 정보