У меня проблема на сервере (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