Я использую контейнер Ubuntu 16.04 под Proxmox 5.2-11. После применения последнего раунда патчей 1 я не могу войти в консоль или через ssh.
Я установил контейнер корневой FS на гипервизор и добавил pts/0
к /etc/security/access.conf
(мы бежим pam_access
) , и что позволило корневой входа в консоль. У нас, root : lxc/tty0 lxc/tty1 lxc/tty2
в access.conf
которых я думал, было достаточно, поэтому, почему я нуждался pts/0
сейчас, озадачивает.
Я заметил, что ssh не работает, поэтому попытался запустить его вручную ( /usr/sbin/sshd -DDD -f /etc/ssh/sshd_config
) и получил эту ошибку:
Missing privilege separation directory: /var/run/sshd
Я создал каталог вручную, запустил ssh
и смог наконец войти в систему, но после перезагрузки проблема остается. Каталог не создается. Только полезные биты journalctl
и единственная интересная часть - это что-то о «операции не разрешены», но никакой дополнительной информации.
Я не слишком знаком с 16.04, поэтому удивляюсь, как узнать больше о проблеме. У меня нет /var/log/syslog
или /var/log/messages
только kern.log
так вроде потеряно.
systemd-sysv 229-4ubuntu21.9
libpam-systemd 229-4ubuntu21.9
libsystemd0 229-4ubuntu21.9
systemd 229-4ubuntu21.9
udev 229-4ubuntu21.9
libudev1 229-4ubuntu21.9
iproute2 4.3.0-1ubuntu3.16.04.4
libsasl2-modules-db 2.1.26.dfsg1-14ubuntu0.1
libsasl2-2 2.1.26.dfsg1-14ubuntu0.1
ldap-utils 2.4.42dfsg-2ubuntu3.4
libldap-2.4-2 2.4.42dfsg-2ubuntu3.4
libsasl2-modules 2.1.26.dfsg1-14ubuntu0.1
libgs9-common 9.25dfsg1-0ubuntu0.16.04.3
ghostscript 9.25dfsg1-0ubuntu0.16.04.3
libgs9 9.25dfsg1-0ubuntu0.16.04.3
[2]
Nov 27 10:13:48 host16 systemd[1]: Starting OpenBSD Secure Shell server...
Nov 27 10:13:48 host16 sshd[474]: Missing privilege separation directory: /var/run/sshd
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Control process exited, code=exited status=255
Nov 27 10:13:48 host16 systemd[1]: Failed to start OpenBSD Secure Shell server.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Unit entered failed state.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Failed with result 'exit-code'.
Nov 27 10:13:48 host16 mysqld_safe[495]: Starting mysqld daemon with databases from /var/lib/mysql/mysql
Nov 27 10:13:48 host16 mysqld[500]: 181127 10:13:48 [Note] /usr/sbin/mysqld (mysqld 10.0.36-MariaDB-0ubuntu0.16.04.1) starting as process 499 ...
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Service hold-off time over, scheduling restart.
Nov 27 10:13:48 host16 systemd[1]: Stopped OpenBSD Secure Shell server.
Nov 27 10:13:48 host16 systemd[1]: Failed to reset devices.list on /system.slice/ssh.service: Operation not permitted
Nov 27 10:13:48 host16 systemd[1]: Starting OpenBSD Secure Shell server...
Nov 27 10:13:48 host16 sshd[502]: Missing privilege separation directory: /var/run/sshd
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Control process exited, code=exited status=255
Nov 27 10:13:48 host16 systemd[1]: Failed to start OpenBSD Secure Shell server.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Unit entered failed state.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Failed with result 'exit-code'.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Service hold-off time over, scheduling restart.
Nov 27 10:13:48 host16 systemd[1]: Stopped OpenBSD Secure Shell server.
Nov 27 10:13:48 host16 systemd[1]: Failed to reset devices.list on /system.slice/ssh.service: Operation not permitted
Nov 27 10:13:48 host16 systemd[1]: Starting OpenBSD Secure Shell server...
Nov 27 10:13:48 host16 sshd[503]: Missing privilege separation directory: /var/run/sshd
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Control process exited, code=exited status=255
Nov 27 10:13:48 host16 systemd[1]: Failed to start OpenBSD Secure Shell server.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Unit entered failed state.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Failed with result 'exit-code'.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Service hold-off time over, scheduling restart.
Nov 27 10:13:48 host16 systemd[1]: Stopped OpenBSD Secure Shell server.
Nov 27 10:13:48 host16 systemd[1]: Failed to reset devices.list on /system.slice/ssh.service: Operation not permitted
Nov 27 10:13:48 host16 systemd[1]: Starting OpenBSD Secure Shell server...
Nov 27 10:13:48 host16 sshd[504]: Missing privilege separation directory: /var/run/sshd
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Control process exited, code=exited status=255
Nov 27 10:13:48 host16 systemd[1]: Failed to start OpenBSD Secure Shell server.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Unit entered failed state.
Nov 27 10:13:48 host16 systemd[1]: ssh.service: Failed with result 'exit-code'.
Nov 27 10:13:49 host16 systemd[1]: ssh.service: Service hold-off time over, scheduling restart.
Nov 27 10:13:49 host16 systemd[1]: Stopped OpenBSD Secure Shell server.
Nov 27 10:13:49 host16 systemd[1]: ssh.service: Start request repeated too quickly.
Nov 27 10:13:49 host16 systemd[1]: Failed to start OpenBSD Secure Shell server.
Nov 27 10:13:49 host16 systemd[1]: ssh.service: Unit entered failed state.
Nov 27 10:13:49 host16 systemd[1]: ssh.service: Failed with result 'start-limit-hit'.
Nov 27 10:13:49 host16 systemd[1]: Started /etc/rc.local Compatibility.
Nov 27 10:13:49 host16 systemd[1]: Failed to reset devices.list on /system.slice/plymouth-quit.service: Operation not permitted
Nov 27 10:13:49 host16 systemd[1]: Starting Terminate Plymouth Boot Screen...
Nov 27 10:13:49 host16 systemd[1]: Failed to reset devices.list on /system.slice/plymouth-quit-wait.service: Operation not permitted
Nov 27 10:13:49 host16 systemd[1]: Starting Hold until boot process finishes up...
Nov 27 10:13:49 host16 systemd[1]: Failed to reset devices.list on /system.slice/rc-local.service: Operation not permitted
Nov 27 10:13:49 host16 systemd[1]: Started Hold until boot process finishes up.
Nov 27 10:13:49 host16 systemd[1]: Started Container Getty on /dev/pts/1.
Nov 27 10:13:49 host16 systemd[1]: Started Container Getty on /dev/pts/0.
Nov 27 10:13:49 host16 systemd[1]: Failed to reset devices.list on /system.slice/console-getty.service: Operation not permitted
Nov 27 10:13:49 host16 systemd[1]: Started Console Getty.
Nov 27 10:13:49 host16 systemd[1]: Reached target Login Prompts.
Nov 27 10:13:49 host16 systemd[1]: Started Terminate Plymouth Boot Screen.
Nov 27 10:13:52 host16 nslcd[338]: accepting connections
Nov 27 10:13:52 host16 nslcd[275]: ...done.
Nov 27 10:13:52 host16 systemd[1]: Started LSB: LDAP connection daemon.
Nov 27 10:13:52 host16 systemd[1]: Failed to reset devices.list on /system.slice/cron.service: Operation not permitted
Nov 27 10:13:52 host16 systemd[1]: Started Regular background program processing daemon.
Nov 27 10:13:52 host16 systemd[1]: Failed to reset devices.list on /system.slice/atd.service: Operation not permitted
Добавлен systemd-tmpfiles --create
вывод
Действительно странно .... Я проверил, /tmp
и эти файлы не существуют
journalctl
?/etc/init.d/ssh
не будет работать иsystemctl
будет использоваться вместо. А приsshd
запуске черезsystemctl
каталог не создается. Это оставляет несколько открытых вопросов, которые я постараюсь обсудить завтра, например, что именно изменилось и как именно этот каталог должен создаваться приsystemctl
использовании.systemctl
он/etc/init/ssh.conf
отвечает за создание каталога. Я протестировал на полностью обновленной Ubuntu 16.04, и каталог создается во время загрузки. Но по какой-то причине он не создается при использованииservice ssh start
. Есть некоторые недавние обновления некоторыхsystemd
связанных пакетов, но я не вижу никаких свидетельств поведения относительно того, что создание этого каталога изменилось. И когда я тестирую, он создается во время загрузки. Так что вопрос в/etc/init/ssh.conf
том, правильно ли у вас содержимое./etc/init/ssh.conf
что также/usr/lib/tmpfiles.d/sshd.conf
используетсяsystemd-tmpfiles --create
. Создает лиsystemd-tmpfiles --create
отсутствующий/var/run/sshd
каталог?systemd-tmpfiles --create
вывода. Systemd, на который жалуется systemmlinks (/tmp/.X11-unix), даже не существует,/tmp/
поэтому я понятия не имею, откуда он это взял . Спасибо за вашу помощь в этом, но я думаю, что буду двигаться дальше.Поэтому / run (и / var / run символическая ссылка на него) воссоздается при каждой перезагрузке. За исключением того, что systemd-tmpfiles не делает этого для некоторых файлов, включая (/ var) / run / sshd.
По-видимому, это исправлено обновлением ядра OpenVZ. Но чтобы действительно это исправить, теперь вы редактируете
/usr/lib/tmpfiles.d/sshd.conf
и удаляете/var
из строкиd /var/run/sshd 0755 root root
:d /run/sshd 0755 root root
И это все..!
И когда openssh-сервер будет обновлен, мы надеемся, что он исправит эту ошибку (или это действительно ошибка в systemd? Или openvz ??) - иначе вы можете столкнуться с той же проблемой.
источник
d /run/sshd 0755 root root
, поскольку в их указаниях говорится только об удалении/var
части (хотя код, который они дают в ответе, удалил и то,/var
и другое/run
).Очевидно, это решается при запуске ядра OpenVZ версии 2.6.32-042stab134.7 или новее. Я нахожу странным, что в сценариях запуска systemd невозможно исправить ситуацию. Вероятно, уродливый хак, такой как автоматическое создание / запуск / sshd / после запуска и запуска sshd, будет работать.
Вывод мой
systemd-tmpfiles --create
:В журнале изменений OpenVZ 2.6.32-042stab134.7 говорится следующее:
источник
Поскольку столько лет у меня было много проблем с systemd, я должен признать, что эта проблема проистекает из директивы Ansible synchronize .
По какой-то причине после предоставления этому хосту наших скриптов ansbile он оставил каталог / (а также / etc, / opt и другие), принадлежащий пользователю с правами администратора, а не root. После запуска,
chown
чтобы исправить вещи,/var/run/sshd
теперь снова создается при загрузке.Я действительно ценю все входные данные, но здесь нет ошибки, по крайней мере в том смысле, что применение неправильного владения корневыми каталогами привело к неопределенному поведению системы.
источник