다른 사용자가 강제로 로그 아웃하도록하려면 어떻게해야합니까?


14

루트로 로그인 한 상태에서 다른 사용자를 Linux 상자에서 강제로 끌 수있는 간단한 방법이 있습니까? 나는 그들이 어떤 세션을 열 었는지 결정할 수 있고 pid를 죽일 수 있다는 것을 알고 있습니다.

어떤 아이디어?

답변:


15

당신은 단순히 slay(1)그를 할 수 있습니다 . :-)


하아! 산뜻한. 나는이 명령에 대해 들어 본 적이 없다. 모든 시스템에서 사용할 수 있습니까? 물론 쉘 프로세스를 죽이는 것보다 낫습니다.
Jonathon Watney

아마도 모든 배포판에 패키지로 제공 될 것이지만, 모든 곳에서 작동하는 것이 필요하다면 Mihai가 지적한 것처럼 procps의 기술이 더 나은 선택 일 수 있습니다. 그것은 ;-) 그래도 덜 스타일을 가지고
데이비드 슈미트에게

1
openSuse 11.4-slay : 명령을 찾을 수 없음 :( :(
usr-local-ΕΨΗΕΛΩΝ)

현재 사용 가능한 Ubuntu 12.04 또는 RHEL 3 호스트에는 설치되어 있지 않지만 skillMihai Limbăşan이 자세히 설명 하는 명령 이 있습니다 . YMMV
David


10

를 통해 사용자의 모든 프로세스를 종료 할 수 있습니다 skill. 예:

  • skill -TERM -u username

모든 username프로세스에 SIGTERM을 보냅니다 . (SIGKILL을 통해) 잘 죽이려면 -TERM 대신 -KILL을 사용하십시오.하지만 데이터가 손실 될 가능성이 가장 높습니다. 매우 효과적입니다.

skillprocps기본적으로 모든 배포에 의해 설치되는 패키지의 일부입니다 .


모든 원격 사용자 세션에 대해이 작업을 수행하려는 다른 사용자에게는 -v pts/*매뉴얼 페이지에 있는 -v 플래그 ( )가 유용 할 수 있습니다.
David

2

pkill와는 killall보다 선호된다 skill. 이것은 skill맨 페이지 에서 온 것입니다 .

이러한 도구는 아마도 더 이상 사용되지 않으며 이식 할 수 없습니다. 명령 구문이 잘못 정의되었습니다. 사용을 고려 killall, pkill그리고 pgrep대신 명령을.

트릭을 수행해야합니다.

sudo pkill -KILL -u [user]

또는

sudo killall -u [user]


0

또 다른 쉬운 방법은 pid 가 SSH 세션의 프로세스 ID 번호 인 kill -1 <pid>곳 에서 실행 하는 것입니다 .

이 명령을 실행하면 모든 sshd 프로세스 트리를 볼 수 있습니다 . 상위 프로세스 ID를 종료하면 이와 관련된 사용자 세션이 효과적으로 종료됩니다.

$ ptree -p

를 찾아 SSHD 다음 실행 :

$ kill -1 39383

여기서 39383 은 임의의 프로세스 ID 번호의 예입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.