Вопрос или проблема
При попытке удалить пользователя появляется сообщение “пользователь в настоящее время вошел в систему”.
Я уже убил пользователя, используя pkill -KILL -u usernameHere и несколько других команд, но это не помогает.
Как я могу удалить этого пользователя?
Запускаю CentOS 6.
Перейдите к пользователю su - username
и выполните kill -9 -1
от имени пользователя.
Выйдите из оболочки и попробуйте снова userdel -r username
.
Или вы можете проверить процессы пользователя с помощью lsof -u username
и убить соответствующие PID.
Или pkill -u username
или pkill -u uid
Или ps aux | grep <username>
и kill
процессы, которые выполняет пользователь.
Если вышеуказанные шаги не помогают! (Предполагая, что вы используете уровень выполнения 5)
Вы можете попробовать следующее:
- Измените уровень выполнения на 3 (
init 3
) - войдите под другим пользователем, отличным от удаляемого аккаунта (root/другой аккаунт)
userdel -r username
Я пробую шаги, чтобы удалить user1
-
su user1
-
kill -9 -1
-
su
-
sudo deluser user1
Ответ или решение
Проблема: Невозможно удалить пользователя: "пользователь в данный момент вошёл в систему"
При попытке удалить пользователя в CentOS 6 вы столкнулись с ошибкой, сообщающей о том, что пользователь в данный момент находится в системе. Эта проблема может возникать по нескольким причинам, и существует множество методов для её решения.
Шаги по устранению проблемы
1. Прекращение всех процессов пользователя
Первый шаг заключается в завершении всех процессов, запущенных пользователем. Для этого используйте:
-
pkill
:pkill -u username
или
pkill -u uid
-
lsof
:
Позволяет увидеть все открытые файлы и процессы пользователя:lsof -u username
Затем, используя команды
kill
, завершите соответствующие процессы, указанные в выводе. -
ps
иgrep
:
С помощью следующей команды вы можете найти все процессы от имени пользователя:ps aux | grep username
Завершите их, использовав команду
kill
.
2. Принудительное завершение сеансов
Если пользователь всё ещё зарегистрирован в системе, попробуйте выполнить вход от его имени и завершить сеанс. Для этого выполните следующие команды:
su - username
kill -9 -1
exit
Это приведёт к завершению всех процессов, запущенных пользователем.
3. Изменение уровня выполнения
Если предыдущие шаги не помогли, проверьте, на каком уровне выполнения вы находитесь. Если вы работаете на уровне выполнения 5 (графический интерфейс), попробуйте перейти на уровень 3:
init 3
После этого выполните вход в систему под другой учетной записью (например, root), а затем попробуйте снова удалить пользователя:
userdel -r username
Другие варианты
Если вышеупомянутое всё ещё не помогает, можно использовать следующие альтернативные методы:
- Перезагрузка системы в безопасном режиме или однопользовательском режиме и попытка удаления пользователя.
- Убедитесь, что пользователь не подключён по SSH или другим удалённым протоколам.
Заключение
Удаление пользователя, который в данный момент зарегистрирован в системе, может быть затруднительным, но следуя указанным шагам, вы сможете успешно удалить пользователя. Если ни один из предложенных методов не сработал, возможно, стоит рассмотреть необходимость вручную редактировать конфигурационные файлы или обратиться в техподдержку для более детального анализа ситуации.