Хорошо, я понял это. Так вот как работает логин. В /etc/init/tty1.conf
есть скрипт инициализации, который запускает getty. Getty - это программа, которая ожидает подключения к логину, а затем аутентифицирует пользователя. Сначала я думал, что getty запускается с аутологином, и поэтому я искал строку в /etc/init/tty1.conf
например,
exec /sbin/getty -8 38400 -a root tty1
что означает открытие 8-битного терминала со скоростью 38400 бод и Авторизация пользователя root в tty1. Но когда я посмотрел на файл, не было опции -a
для автоматического входа в систему пользователя root. Я утверждаю это, потому что /etc/init/tty1.conf
должен быть первым местом, чтобы посмотреть, сталкиваются ли другие с такой же проблемой.
Затем я просмотрел каталог /etc/init/
и нашел файл с именем openvt.conf
. Это имеет следующую строку:
exec /bin/login -f root
Это был виновник. Команда входа в систему с параметром -f
автоматически регистрирует пользователя без аутентификации.
Так как файл openvt.conf
предназначен для выскочки, его нужно отключить особым образом, хотя можно также просто удалить файл. Смотрите этот пост Askubuntu о выскочке. Короче, либо удалите файл openvt.conf
, либо запустите
echo manual | sudo tee /etc/init/openvt.override
а затем root больше не входит в систему автоматически.