PATH 변수가 손상될 수 있나요?

PATH 변수가 손상될 수 있나요?

루비 버전 관리 프로그램인 rbenv를 설치했습니다. .bashrc 파일을 살펴본 결과 경로 변수가 아래와 같이 변경된 것을 확인했습니다.

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

이전 경로 내용을 포함하기 위해 ":$PATH" 부분이 포함된 것 같습니다. 경로 변수를 수정하는 프로그램에 ":$PATH" 부분이 포함되지 않으면 어떻게 되는지 알고 싶습니다. 해당 프로그램이 있는 bin 디렉터리가 더 이상 새 경로 변수에 포함되지 않으므로 명령줄에서 일부 프로그램을 실행할 수 없습니까?

답변1

당신이 올바른지. 따라서 타사 패키지는 현재 경로를 확장하기만 하고 제한해서는 안 됩니다.

답변2

PATHbash은 쉘( , fish, ksh, sh등)이 실행할 항목을 찾기 위해 사용하는 콜론으로 구분된 디렉토리 목록입니다 . 셸에 입력한 줄의 첫 번째 단어가 셸 내장 또는 별칭이 아닌 경우, 셸은 에 있는 디렉터리 목록을 탐색하여 $PATH입력한 명령의 첫 번째 단어와 동일한 이름을 가진 실행 파일을 찾습니다.

command not found일반적인 명령( da/media/w3/0123-4567/PODCASTS/2016-Nov-27/loe-wildlife-decline.mp3te, ls, ...)에 대한 오류는 형식이 잘못되었음을 나타냅니다 PATH. 긴급 상황 PATH(문제를 해결할 수 있을 만큼)을 로 설정할 수 있습니다 export PATH=/usr/bin:/bin:/usr/local/bin:/snap/bin.

많은 PATH오류는 쉘 구문 오류입니다( Space이전 또는 이후 =. PATH=value, 공백 없음).

"경로 손상"에 관한 한, 의 "특수" 버전을 생성하고 ls에 저장 한 경우 /.evil/bin/ls경로가 손상되어 다음과 같이 될 수 있습니다./.evil/bin 전에 /bin, 를 입력하면 ls셸이 /.evil/bin/ls대신 실행됩니다 /bin/ls. 잘 알려진 문제이지만 시스템이 유용해질 때쯤에는 시스템이 완전히 침투됩니다.

답변3

이를 실행할 수 있으며 전체 경로를 지정하기만 하면 됩니다. 수정해도 PATH연관된 권한은 수정되지 않습니다.

관련 정보