악의적인 별칭 선언을 찾는 방법은 무엇입니까?

악의적인 별칭 선언을 찾는 방법은 무엇입니까?

alias구체적인 내용이 어디에서 선언되었는지 찾으려고 합니다 . 별칭을 찾기 위해 제가 아는 일반적인 장소를 모두 검색했습니다.

  • ~/.bashrc
  • ~/.bash_profile
  • /etc/bashrc
  • /etc/구성 파일

불운.

alias나는 이 일을 하면 다음과 같은 결과를 얻게 되기 때문에 이것을 알고 있습니다 which COMMAND.

alias COMMAND='/path/to/command'
    /path/to/command

alias이름 으로만 알려진 파일 선언을 찾는 방법이 있습니까 alias?

답변1

/etc/profile.d/위반사항이 있는지 조사하겠습니다 alias.

다음을 수행하여 찾을 수도 있습니다.

grep -r '^alias COMMAND' /etc

그러면 grep파일에서 로 시작하는 줄을 반복적으로 찾습니다 alias COMMAND.

모두 실패하면 맨 마지막에 넣으세요~/.bashrc

unalias COMMAND

답변2

시도해 볼 수 있는 몇 가지 작업은 다음과 같습니다.

  1. bash -v쉘 시작 중에 어떤 라인을 읽고 있는지 확인하는 데 사용됩니다.
  2. bash -x쉘 시작 중에 어떤 명령이 실행되고 있는지 확인 하는 데 사용됩니다 .
  3. 하나의 시작 파일로만 실행

bash-v

-v 옵션을 사용하면 bash읽는 모든 스크립트 파일의 모든 행이 인쇄됩니다.

달리기부터 시작해

bash -i -v >bash-i.out 2>&1

5~10초 정도 기다린 후 를 누르세요 Ctrl+C.

bash-i.out그러면 모든 시작 파일이 함께 병합(또는 연결)된 것과 같은 이름의 파일이 제공됩니다 .

그런 다음 를 less사용하여 파일을 열고 를 사용하여 별칭을 검색합니다 /aliasname.

이제 파일의 다른 줄과 관련하여 이 별칭이 나타나는 위치를 비교해 보세요. 예를 들어, 대부분의 시스템에는 /etc/bash.bashrc상단 /etc/bash.bashrc~/.bashrc.

상단 위에 있으면 ~/.bashrc별칭을 정의하는 시작 파일일 가능성이 높습니다. 그렇지 않으면 파일에 있거나 또는 (점 명령)을 통해 포함된 파일에 있습니다./etc~/.bashrcsource.

별칭이 표시되지 않으면 시도해 보세요.

bash -l -v >bash-l.out 2>&1

이는 bash가 로그인 쉘이 되어 and 대신 and /etc/profile와 같은 다른 시작 파일을 읽도록 지시합니다 .~/.bash_profile/etc/bash.bashrc~/.bashrc

배쉬-x

bash -v이것이 명확한 답을 주지 못한다면, 쉘이 읽고 있는 줄이 아니라 쉘이 실행 중인 명령을 인쇄하는 running 을 시도해 보세요 bash -x.

방법은 기본적으로 위와 동일하며 -v로 변경하였습니다 -x. (필요하다면 두 가지를 동시에 사용해도 됩니다.)

하나의 시작 파일로만 실행

bash -i --rcfile="$HOME/.bashrc"

별칭이 있는지 확인하세요.

시스템에 이 기능이 있는 경우 rcfile다음으로 설정하여 동일한 작업을 수행해 보세요./etc/bash.bashrc

그럼 시도해봐

bash -l --rcfile="$HOME/.bash_profile"

profile그리고 이름에 포함된 모든 bash 시작 파일에 대해 동일한 작업을 수행 $HOME/.bash_profile합니다 /etc/profile.

어느 쪽이든 별칭을 표시하면 어떤 파일을 살펴봐야 할지 알 수 있습니다.

답변3

어쩌면 당신 것일까 .xinitrc요? 또한 귀하 의 파일 .bashrc이나 소스 .bash_profile의 다른 파일이 있는지 확인해야 합니다. 예를 들어, 다음 명령에서 참조하는 별도의 파일에 모든 별칭을 저장합니다.

[ -f ~/.bash_alias ] && source $HOME/.bash_alias

도움이 될 수 있는 몇 가지 질문: 일반 사용자를 위한 것입니까, 아니면 루트를 위한 것입니까? 어떤 순서인가요? 리눅스는 어떤 스타일인가요?

답변4

나는 별칭 정의를 넣는 매우 일반적인 관행을 따랐습니다.

~/.bash_aliases

그런 다음 .bashrc에서 호출하세요.

[ -f ~/.bash_aliases ] && source $HOME/.bash_aliases

관련 정보