저는 여러 외부 프로그램(pandoc, samtools, vcflib 등)에 의존하는 프로그램을 만들고 있습니다. 올바른 버전을 사용하고 있는지 확인하기 위해 모든 버전에 대한 바이너리를 다운로드하여 bin
프로그램과 함께 제공된 디렉토리에 배치했습니다. 프로그램이 실행될 때 다른 시스템에 설치된 버전에 관계없이 해당 버전이 사용되는지 확인하고 싶습니다.
PATH=~/my_program/bin:$PATH
프로그램이 시작 부분에 자체 바이너리를 추가하는 것과 같은 명령을 실행하는 것이 일반적으로 안전한 것으로 간주 됩니까 $PATH
?
관련 질문을 봤습니다여기그리고여기그러나 이 관행을 구현하는 것이 실제로 바람직한지, 아니면 이 경우 의도하지 않은 결과가 발생할 수 있는지는 확실하지 않습니다.
답변1
안전하다는 것이 무엇을 의미하는지에 따라 다릅니다. 프로그램이 다른 사용자가 쓸 수 없는 디스크 위치에 저장되어 있다면 이는 사용자가 소프트웨어를 속여 다른 것을 실행하도록 할 수 없는 또 다른 경로이기 때문에 안전합니다.
바이너리를 소프트웨어 디렉토리에 복사하는 것은 이식성이 없으며 보안 패치의 이점을 얻을 수 없다는 점에서 안전하지 않습니다. 그러나 사용자 지정 배포를 이해하고 있다면 이는 문제가 되지 않을 수 있습니다.