Korzystam z kontenera Ubuntu 16.04 pod Proxmox 5.2-11. Po zastosowaniu najnowszej rundy łatek 1 nie mogę się zalogować na konsoli lub przez ssh.
I zamontowany pojemnik główny FS na hypervisor i dodawane pts/0
do /etc/security/access.conf
(możemy uruchomić pam_access
) i które pozwoliły logowania administratora do konsoli. Mamy takie, root : lxc/tty0 lxc/tty1 lxc/tty2
w access.conf
których myślałem, że są wystarczające, dlatego pts/0
zastanawiam się, dlaczego tak potrzebowałem .
Zauważyłem, że ssh nie działa, więc spróbowałem uruchomić go ręcznie ( /usr/sbin/sshd -DDD -f /etc/ssh/sshd_config
) i otrzymałem ten błąd:
Missing privilege separation directory: /var/run/sshd
Katalog utworzyłem ręcznie, uruchomiłem ssh
i mogłem w końcu się zalogować, ale po ponownym uruchomieniu problem nadal występuje. Katalog nie jest tworzony. Tylko użyteczne fragmenty journalctl
i jedyna interesująca część to coś o „niedozwolonej operacji”, ale bez dalszych informacji.
Nie znam się zbyt dobrze na 16.04, więc zastanawiam się, jak mogę dowiedzieć się więcej o tym problemie. Nie zgubiłem /var/log/syslog
lub /var/log/messages
tylko kern.log
tak bardzo zgubiłem.
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
Dodano systemd-tmpfiles --create
wyjście
journalctl
?/etc/init.d/ssh
nie zostanie uruchomiony isystemctl
zostanie użyty zamiast niego. A kiedysshd
jest uruchamiany przezsystemctl
katalog, katalog nie jest tworzony. To pozostawia kilka otwartych pytań, które postaram się zagłębić jutro, takich jak to, co dokładnie się zmieniło i jak dokładnie ten katalog ma zostać utworzony, gdysystemctl
jest używany.systemctl
To/etc/init/ssh.conf
który jest odpowiedzialny za tworzenie katalogu. Testowałem na w pełni aktualnym Ubuntu 16.04 i katalog jest tworzony podczas uruchamiania. Ale z jakiegoś powodu nie jest tworzony podczas używaniaservice ssh start
. Istnieje kilka ostatnich aktualizacji niektórychsystemd
powiązanych pakietów, ale nie widzę żadnych dowodów na zachowanie dotyczące tworzenia tego katalogu, który się zmienił. A kiedy testuję, powstaje podczas rozruchu. Pytanie brzmi zatem, czy masz/etc/init/ssh.conf
odpowiednią zawartość./etc/init/ssh.conf
że/usr/lib/tmpfiles.d/sshd.conf
wydaje się, że jest używany przezsystemd-tmpfiles --create
. Czysystemd-tmpfiles --create
tworzy brakujący/var/run/sshd
katalog?systemd-tmpfiles --create
wyjścia. Systemd narzeka na „dowiązania symboliczne” (/tmp/.X11-unix) nawet nie istnieją,/tmp/
więc nie mam pojęcia, skąd to bierze . Dziękuję za twoją pomoc, ale myślę, że idę dalej.Tak więc / run (i / var / run dowiązane do niego) jest odtwarzany przy każdym ponownym uruchomieniu. Tyle że systemd-tmpfiles nie robi tego w przypadku niektórych plików, w tym (/ var) / run / sshd.
Najwyraźniej jest to naprawione przez aktualizację jądra OpenVZ. Ale aby to naprawić, teraz edytujesz
/usr/lib/tmpfiles.d/sshd.conf
i usuwasz/var
z wiersza,d /var/run/sshd 0755 root root
aby zamiast tego przeczytać:d /run/sshd 0755 root root
I to wszystko..!
A kiedy serwer openssh zostanie zaktualizowany, mamy nadzieję, że naprawią ten błąd (czy to naprawdę błąd w systemie? Lub openvz?) - w przeciwnym razie możesz napotkać ten sam problem.
źródło
d /run/sshd 0755 root root
, ponieważ ich instrukcje mówią, aby usunąć tylko/var
część (nawet jeśli kod podany w odpowiedzi ma zarówno/var
i/run
usunięty).Najwyraźniej problem został rozwiązany po uruchomieniu jądra OpenVZ 2.6.32-042stab134.7 lub nowszego. Wydaje mi się dziwne, że nie ma możliwości naprawy skryptu systemd start. Prawdopodobnie działałby brzydki hack, taki jak automatyczne tworzenie / run / sshd / po uruchomieniu, a następnie uruchomieniu sshd.
Wyjście mojego
systemd-tmpfiles --create
:Dziennik zmian OpenVZ 2.6.32-042stab134.7 mówi:
źródło
Mimo tylu problemów, jakie miałem z systemd przez lata, muszę przyznać, że ten problem wynika z dyrektywy Ansible synchronize .
Z jakiegoś powodu, po wyposażeniu tego hosta w nasze skrypty ansbile, opuścił on katalog / (/ etc /, opt / i inne) będący własnością administratora, a nie root. Po uruchomieniu,
chown
aby poprawić rzeczy,/var/run/sshd
jest teraz tworzony ponownie podczas uruchamiania.Naprawdę doceniam wszystkie dane wejściowe, ale nie ma tutaj błędu, przynajmniej w tym sensie, że zastosowanie niewłaściwej własności do katalogów głównych spowodowało niezdefiniowane zachowanie systemu.
źródło