다음 명령 중 하나를 실행하여 누군가에게 장난을 칠 생각입니다.
echo bash >> .bashrc
또는
echo source .bashrc >> .bashrc
누군가가 당신에게 이런 일을 한다면, 그것을 고치기 위해 무엇을 할 수 있습니까? (명령줄 액세스만 가능하다고 가정할 때) 다른 사용자에게 편집을 요청하는 것 외에 할 수 있는 일이 있나요 sudo
?
답변1
권한이 안전하지 않게 설정되지 않는 한 다른 사용자의 셸 시작 파일을 편집할 수 없습니다. 자신도 모르게 또는 동의 없이(홈 디렉터리의 모든 파일에 적용 가능) 이 작업을 수행하는 것은 비윤리적인 것으로 간주되며 시스템에 적용되는 행동 규칙에 따라 위반으로 간주될 수도 있습니다.
시스템 권한이 있고 sudo
이 "장난"을 고려한다면sudo
이 시스템에 대한 권한이 없어야 합니다..
첫 번째 명령은 bash
의 끝에 명령으로 추가됩니다 .bashrc
. 이것이 .bashrc
사용자의 홈 디렉토리에 있고 사용자가 user 인 bash
경우 종료되거나 리소스 제한에 직면할 때까지 대화형 쉘을 시작하는 무한 재귀 루프가 발생합니다(해당 쉘 세션이 시작되면).
두 번째 명령은 유사한 루프를 발생시키지만 코드는 bash
단일 프로세스 환경에서만 실행됩니다. 이는 종료될 때까지 또는 일부 환경 변수(예 PATH
: 각 반복에서 스크립트가 추가되는 경우)가 너무 커져서 리소스 제한에 도달할 때까지 계속됩니다.
다중 사용자 시스템에서는 공유 리소스(주로 CPU 및 메모리)가 소비되므로 이러한 "장난"이 모두 다른 사용자에게 영향을 미칠 수 있습니다.
위의 작업이 수행되는 동안 파일을 편집, 수정 및 저장하면 루프가 중지되지만 영향을 받는 사용자의 프로세스가 종료될 때까지 리소스가 해제되지 않습니다 .bashrc
.bash
긴급 수정으로 pkill -U username bash
루트나 pkill bash
영향을 받은 사용자를 사용하여 이를 중지할 수 있습니다. 그러면 bash
영향을 받은 사용자의 모든 프로세스가 종료됩니다 .