![양성 사용자를 시스템에서 쫓아내는 방법은 무엇입니까?](https://linux55.com/image/266/%EC%96%91%EC%84%B1%20%EC%82%AC%EC%9A%A9%EC%9E%90%EB%A5%BC%20%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%97%90%EC%84%9C%20%EC%AB%93%EC%95%84%EB%82%B4%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
이전에 Google 검색을 하다가 몇 가지 방법을 알아냈는데 Google이 그 방법을 모두 알고 있지는 않은 것 같습니다. 그래서 뭐 할까너Linux 시스템에서 사용자를 쫓아내시겠습니까? 또한 처음에 그들이 로그인되어 있는지 어떻게 알 수 있습니까? 그리고 관련... 사용자가 X11 DE에 로그인한 경우 귀하의 접근 방식이 작동합니까(요구 사항은 아니지만 궁금합니다)?
답변1
더 쉬운 방법이 있을 수 있지만 저는 이렇게 합니다.
귀하의 컴퓨터에 누가 로그인했는지 확인하십시오 .
who
또는 다음을 사용하십시오w
.> who mmrozek tty1 Aug 17 10:03 mmrozek pts/3 Aug 17 10:09 (:pts/2:S.0)
TTY가 연결된 셸의 프로세스 ID를 찾습니다.
> ps t PID TTY STAT TIME COMMAND 30737 pts/3 Ss 0:00 zsh
곧 연결이 끊어질 때 웃으세요(이 단계는 선택 사항이지만 권장됩니다).
> echo "HAHAHAHAHAHAHAHA" | write mmrozek pts/3
해당 프로세스를 종료합니다.
> kill -9 30737
who
방금 플래그를 지정하여 1단계와 2단계를 결합할 수 있다는 것을 발견했습니다 -u
. PID는 오른쪽에 있는 숫자입니다.
> who -u
mmrozek tty1 Aug 17 10:03 09:01 9250
mmrozek pts/18 Aug 17 10:09 01:46 19467 (:pts/2:S.0)
답변2
Micheal이 이미 지적했듯이, 이를 사용하여 who
누가 로그인했는지 확인할 수 있습니다. 그러나 여러 프로세스가 있는 경우 각 프로세스를 개별적으로 종료하는 것보다 더 편리한 방법이 있습니다. 즉, killall -u username
해당 사용자에 대한 모든 프로세스를 종료할 수 있습니다.
답변3
점!
나는 받아 들여진 답변의 유머에 감사하지만 전문적으로 그것을 옹호할 수는 없습니다.
내가 아는 가장 우아한 방법은 -HUP를 셸에 보내 사용자 정지를 시뮬레이션하는 것입니다. 이를 사용자의 유휴 sshd로 보내 연결 손실을 시뮬레이션하여 전체 셸 환경(하위 셸 포함) 정리를 트리거하거나 특정 중첩 셸(예: 연결이 끊긴 터미널 다중 셸)로 보낼 수 있습니다. 경로 다중화기 내부에 설정)을 사용하면 정말 정확하게 파일 시스템을 마운트 해제할 수 없습니다.
write
시작하기 전에 터미널의 유휴 PTY에 메시지를 보내는 데 사용됩니다.예그래도 재미있는 취미.
답변4
다른 유용한 명령은 pkill
여기에 있습니다 pkill -u username && pkill -9 -u username
.
killall
단점은 Solaris IIRC에서는 완전히 다른 의미를 갖는다는 것입니다. pkill
약간 더 고급 옵션도 있습니다.