양성 사용자를 시스템에서 쫓아내는 방법은 무엇입니까?

양성 사용자를 시스템에서 쫓아내는 방법은 무엇입니까?

이전에 Google 검색을 하다가 몇 가지 방법을 알아냈는데 Google이 그 방법을 모두 알고 있지는 않은 것 같습니다. 그래서 뭐 할까Linux 시스템에서 사용자를 쫓아내시겠습니까? 또한 처음에 그들이 로그인되어 있는지 어떻게 알 수 있습니까? 그리고 관련... 사용자가 X11 DE에 로그인한 경우 귀하의 접근 방식이 작동합니까(요구 사항은 아니지만 궁금합니다)?

답변1

더 쉬운 방법이 있을 수 있지만 저는 이렇게 합니다.

  1. 귀하의 컴퓨터에 누가 로그인했는지 확인하십시오 . who또는 다음을 사용하십시오 w.

    > who  
    mmrozek  tty1         Aug 17 10:03  
    mmrozek  pts/3        Aug 17 10:09 (:pts/2:S.0)
    
  2. TTY가 연결된 셸의 프로세스 ID를 찾습니다.

    > ps t  
    PID   TTY      STAT   TIME COMMAND  
    30737 pts/3    Ss     0:00 zsh
    
  3. 곧 연결이 끊어질 때 웃으세요(이 단계는 선택 사항이지만 권장됩니다).

    > echo "HAHAHAHAHAHAHAHA" | write mmrozek pts/3
    
  4. 해당 프로세스를 종료합니다.

    > 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약간 더 고급 옵션도 있습니다.

관련 정보