내 PATH에 디렉토리가 추가되는 이유는 무엇입니까?

내 PATH에 디렉토리가 추가되는 이유는 무엇입니까?

내 변수에 아주 이상한 문제가 있습니다 PATH. 특히, /usr/lib/hardening-wrapper/bin어느 순간 추가됐는데 추가하고 싶지 않아요.

내가 가장 먼저 한 일은 ~/.bashrc그들 중 누군가가 그것을 설정했는지 확인하는 것이었지만 그들은 그렇지 않았습니다.~/.bash_profile/etc/profile/etc/profile.d/*/etc/environment

다음으로 숨겨진 스크립트 체인이 이 작업을 수행하고 있다고 생각하여 다음을 실행했습니다.

PS4='+$BASH_SOURCE> ' BASH_XTRACEFD=7 bash -xl 7>log

그것이 약간의 빛을 발산하는지 확인하십시오. 놀랍게도 /usr/lib/hardening-wrapper/bin나는 거기에 없었습니다. 이것이 더 간단한 환경에서 복제될 수 있는지 확인하기 위해 bash프롬프트에 따라 베어메탈을 실행했습니다. bash그러나 그 속에 또 PATH숨겨진 것이 있다 /usr/lib/hardening-wrapper/bin.

무서운 점은 루트 사용자 셸에 동일한 경로가 존재하지만 X를 실행하지 않으면 이런 일이 발생하지 않는다는 것입니다. 나는 그것이 X 구성 스크립트와 관련이 있다고 생각했지만 그 중 어느 것도 수정되지 않았습니다 PATH. 또한 내 터미널(흰개미)의 구성에 있을 수도 있다고 생각했지만 그렇지 않습니다. 솔직히 지금 이 순간도 당황스럽습니다.

PATH이 경로가 내 변수 에 추가되는 것을 방지하는 방법을 알려줄 수 있는 사람이 있나요 ?

후속 조치:

나는 그것이 무엇을 찾을 수 있는지 알아보기 위해 밤새도록 실행했습니다 find . -type f -print0 | parallel --progress --null -L 100 -m -j 4 grep -I 'hardening-wrapper'. 전반적으로 다음과 같은 일치 항목을 찾았습니다.

  • .bash_history왜냐하면 나는 그것을 포함하는 많은 명령을 실행해 왔기 때문입니다.
  • ./csassignments/ece454/thrift-0.10.0분산 컴퓨팅 과정을 위해 설치한 Thrift가 포함되어 있습니다. "tutorial_client"에서는 "relink_command"의 경로를 설정하고 내보냅니다. Thrift를 설치할 때 PATH에 포함되어 있기 때문인 것 같습니다.
  • 크로스 컴파일러를 구축하는 데 사용하는 GNU binutils 및 GCC의 소스 코드에는 둘 다 PATH를 인쇄하는 로그가 포함되어 있습니다. 위와 마찬가지로 그들이 내 길을 읽은 것 같습니다.
  • 소스(llvm)에서 빌드한 여러 CMake 프로젝트도 내 이전 경로를 읽는 것 같았습니다.

내가 아는 한 이들 중 어느 것도 자동으로 로드되지 않습니다. 수정된 경로를 실제로 내보내는 유일한 것은 중고품 튜토리얼 클라이언트인데, 이 과정을 수강한 이후로 이 클라이언트를 건드리지 않았습니다.

답변1

무서운 점은 내 루트 셸에도 동일한 경로가 존재하지만 X를 실행하지 않으면 이런 일이 발생하지 않는다는 것입니다. 나는 이것이 X 구성 스크립트와 관련이 있다고 생각했지만 그 중 어느 것도 PATH를 수정하지 않았습니다.

실제로 X가 시작될 때만 설정된다고 주장하는데, 이는 "보통" 어떤 방식으로든 X에 의해 설정된다는 의미입니다. 아쉽게도 어떤 데스크톱 환경을 사용하는지 밝히지 않으셨는데, 일반적인 답변을 드려야 한다는 뜻이니까 좋습니다.

어떤 X 프로필을 확인했는지 알려주지 않았습니다. 다음은 GUI 애플리케이션에 대한 환경 변수를 설정합니다.

/etc/X11/xinit/xinitrc 
~/.xinitrc
/etc/xprofile
~/.xprofile 

원천:https://wiki.archlinux.org/index.php/environment_variables

당신은 또한 볼 수 있습니다https://wiki.archlinux.org/index.php/Xprofile

이 모든 것이 도움이 되지 않는다면, 어떤 데스크탑 환경에서 어떤 GNU/Linux 배포판을 사용하고 있는지 아는 것이 좋습니다.

관련 정보