Просто укажите это на моей виртуальной машине KVM (, где я задавался вопросом, приводит ли перезагрузка хоста к чистому завершению работы гостей ). Я нашел то, что мне нужно, в/var/log/auth.log
(в дополнение к last -x shutdown
, показывающему то же самое ). Там появились эти строки:
Sep 3 23:56:31 Web systemd-logind[531]: Power key pressed.
Sep 3 23:56:31 Web systemd-logind[531]: Powering Off...
Sep 3 23:56:31 Web systemd-logind[531]: System is powering down.
Sep 3 23:55:45 Web systemd-logind[591]: New seat seat0.
Sep 3 23:55:45 Web systemd-logind[591]: Watching system buttons on /dev/input/event0 (Power Button)
Sep 3 23:55:54 Web sshd[805]: Server listening on 0.0.0.0 port 22.
Sep 3 23:55:54 Web sshd[805]: Server listening on :: port 22.
last -x
показывает эти строки, обратите внимание, что они печатаются в самых -последних -первых порядке (т.е. сначала читайте последнюю строку, а затем поднимайтесь ), но из-за сброса часов (23 :56 перед загрузкой, 23 :55 после )также видно в предыдущих строках, порядок кажется немного сбивающим с толку:
runlevel (to lvl 2) 3.13.0-129-gener Sun Sep 3 23:55 - 22:04 (22:08)
reboot system boot 3.13.0-129-gener Sun Sep 3 23:55 - 22:04 (22:08)
shutdown system down 3.13.0-123-gener Sun Sep 3 23:56 - 23:55 (00:00)
runlevel (to lvl 0) 3.13.0-123-gener Sun Sep 3 23:56 - 23:56 (00:00)
Со своей стороны, проверяя правильность завершения работы гостей при загрузке хоста, я также мог бы просто войти в (ssh )одного из гостей и остаться там, когда я загружаю хост, получая эти строки в терминал:
root@Web:~#
Broadcast message from root@Web
(unknown) at 22:25...
The system is going down for power off NOW!
Connection to web closed by remote host.
Connection to web closed.
Вам не нужно редактировать файл /etc/passwd
напрямую, хотя вы можете это сделать, если хотите.
passwd --lock pi # Lock the "pi" user account
Дополнительные параметры, включая способ разблокировки заблокированной учетной записи, можно просмотреть с помощью man passwd
. Разумеется,эта команда должна выполняться с привилегиями root.
Теперь, когда я вижу, что вы отредактировали свой вопрос, чтобы объяснить, что вы хотите отключить аутентификацию на основе пароля -для ssh, это можно принудительно применить, просто отредактировав/etc/ssh/sshd_config
:
PasswordAuthentication no
Не забудьте перезапустить службу,systemctl restart sshd
Хотя @roaima верен, команда passwd
или конфигурация sshd _, вероятно, то, что вам нужно, я хочу указать на несколько альтернатив:
1 )Добавить восклицательный знак в начало пароля (, что на самом деле и делает passwd -l
, см. справочную страницу ). Обратите внимание, что фактический хэш пароля находится в /etc/shadow
, а не в /etc/passwd
.
2 )Отключить ("pre -expire" )учетную запись сusermod --expiredate 1
(или любой другой день в прошлом, также со страницы руководства passwd)
3 )Измените оболочку на "/usr/sbin/nologin" с помощью chsh -s /usr/sbin/nologin
или редактирования /etc/passwd
. Это используется многими дочерними проектами Debian для идентификации учетной записи системы/службы, чтобы блокировать атаки внедрения против специализированных учетных записей (apache, mail, sshd и т. д. ).