Выйти из системы и удалить учетную запись

У меня проблема на сервере (CentOS 6, Plesk 11.5), где конкретный пользователь использует массовую почтовую программу и вносит черный список в наш IP-адрес. Я попытался удалить этого пользователя, используя:

/usr/sbin/userdel test 

но он возвращает сообщение о том, что пользователь в настоящий момент вошел в систему. Я думал, что нормально, убейте процесс. Поэтому я попробовал:

 pkill -u test 

а также заблокировал учетную запись, используя:

 passwd -l test 

который, как мы надеемся, помешает ему войти в систему в будущем.

Все еще говорят, что пользователь вошел в систему. Как я могу зарегистрировать этого пользователя, чтобы я мог удалить его из системы?

Сначала grep все «тестовый» процесс пользователя и kill -9 все pid затем удаляют пользователя.

 pgrep -u test ps -fp $(pgrep -u test) killall -KILL -u test userdel -r test 
 passwd -l <user> 

не останавливает все возможные способы входа в систему. Например, если они регистрируются с помощью ssh с открытыми ключами, они все равно могут войти в систему, так как им не нужен пароль.

Чтобы остановить повторный вход в систему, отредактируйте файл /etc/passwd и удалите пользователя или измените 7-й столбец на /sbin/nologin .

Бег:

 ps -u <user> 

чтобы узнать, какой процесс использует пользователь, и убить их всех. Возможно, вам придется использовать:

 kill -s 9 <pid> 

чтобы заставить процесс остановиться.

passwd -l <user> не отключает учетную запись. gareth сказал, что пользователь все равно может войти в систему, используя другой токен аутентификации, такой как SSH-ключ. Чтобы отключить эту учетную запись, вы должны использовать usermod --expiredate 1 установить дату истечения срока действия учетной записи в 1970 году. Теперь вы должны убить все процессы, которые запускаются пользователем. Бег:

$pgrep -u Foo будет печатать все процессы, которые запускается пользователем Foo. Бег:

$kill -9 <pid> отправит сигнал SIGKILL который убьет этот процесс. Теперь выполните:

$pgrep -u Foo | xargs kill -9

это получит все идентификаторы процесса пользователя Foo и убьет их всех.

ИЛИ:

$kill -9 -u Foo

Вы пытались убить все процессы пользователя с помощью SIGKILL?

 pkill -KILL -u username