특정 사용자가 대량 메일러를 사용하고 있고 IP 주소가 블랙리스트에 등록되어 있는 서버(CentOS 6, Plesk 11.5)에 문제가 있습니다. 다음을 사용하여 사용자를 삭제하려고 했습니다.
/usr/sbin/userdel test
하지만 사용자가 현재 로그인되어 있다는 메시지가 반환됩니다. 나는 괜찮다고 생각했습니다. 프로세스를 종료하십시오. 그래서 나는 다음을 시도한다:
pkill -u test
다음을 사용하여 계정을 잠급니다.
passwd -l test
이렇게 하면 향후에 해당 사용자가 시스템에 로그인하는 것을 방지할 수 있습니다.
여전히 사용자가 로그인되어 있다고 표시됩니다. 이 사용자를 시스템에서 제거하려면 어떻게 로그아웃해야 합니까?
답변1
먼저 모든 "테스트" 사용자의 프로세스를 grep하고 모든 pid를 -9로 종료한 다음 사용자를 삭제하십시오.
pgrep -u test
ps -fp $(pgrep -u test)
killall -KILL -u test
userdel -r test
답변2
passwd -l <user>
가능한 모든 로그인 방법이 차단되는 것은 아닙니다. 예를 들어 ssh
공개 키를 사용하여 로그인하는 경우 비밀번호가 필요하지 않으므로 계속 로그인할 수 있습니다.
사용자가 다시 로그인하는 것을 중지하려면 파일을 편집 /etc/passwd
하고 사용자를 삭제하거나 열 7을 로 변경하십시오 /sbin/nologin
.
달리기:
ps -u <user>
사용자가 아직 어떤 프로세스를 사용하고 있는지 확인하고 모두 종료하세요. 다음을 사용해야 할 수도 있습니다.
kill -s 9 <pid>
프로세스를 강제로 중지합니다.
답변3
passwd -l <user>
계정은 비활성화되지 않습니다. Gareth가 말했듯이 사용자는 여전히 다른 인증 토큰(예: SSH 키)을 사용하여 로그인할 수 있습니다. 이 계정을 비활성화하려면
usermod --expiredate 1
이 설정을 사용하여 계정 만료 날짜를 1970으로 설정해야 합니다. 이제 사용자가 시작한 모든 프로세스를 종료해야 합니다. 달리기:
$pgrep -u Foo
사용자 Foo가 시작한 모든 프로세스가 인쇄됩니다. 달리기:
$kill -9 <pid>
SIGKILL
프로세스를 종료 하라는 신호가 전송됩니다 . 이제 다음을 실행하세요.
$pgrep -u Foo | xargs kill -9
그러면 Foo 사용자의 모든 프로세스 ID가 얻어지고 모두 종료됩니다.
또는:
$kill -9 -u Foo
답변4
userdel -rf username
오류가 발생하지만 사용자가 영구적으로 삭제됩니다. 당신은 그것을 확인할 수 있습니다 /etc/passwd
.