Estou executando um contêiner Ubuntu 16.04 no Proxmox 5.2-11. Depois de aplicar a última rodada de patches 1, não consigo fazer login no console ou no ssh.
Montei o FS raiz do contêiner no hipervisor e adicionei pts/0
a /etc/security/access.conf
(nós executamos pam_access
) e isso permitiu o login raiz no console. Temos root : lxc/tty0 lxc/tty1 lxc/tty2
em access.conf
que eu pensei que era suficiente para por que eu precisava pts/0
agora é intrigante.
Notei que o ssh não estava funcionando, tentei iniciá-lo manualmente ( /usr/sbin/sshd -DDD -f /etc/ssh/sshd_config
) e recebi este erro:
Missing privilege separation directory: /var/run/sshd
Criei o diretório manualmente, iniciei ssh
e consegui finalmente fazer o login, mas após uma reinicialização, o problema persiste. O diretório não está sendo criado. Somente bits úteis journalctl
e a única parte interessante são algo sobre "operação não permitida", mas nenhuma informação adicional.
Eu não estou muito familiarizado com o 16.04, então me pergunto como descobrir mais sobre o problema. Eu não tenho /var/log/syslog
ou /var/log/messages
apenas estou kern.log
perdido.
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
Saída adicionada
Realmente bizarro .... eu verifiquei /tmp
e esses arquivos não existem
journalctl
?/etc/init.d/ssh
, não será executado esystemctl
será usado. E quandosshd
é iniciado atravéssystemctl
do diretório não é criado. Isso deixa algumas questões em aberto que tentarei analisar amanhã, como exatamente o que mudou e como exatamente esse diretório deve ser criado quandosystemctl
for usado.systemctl
lo,/etc/init/ssh.conf
é responsável pela criação do diretório. Eu testei em um Ubuntu 16.04 totalmente atualizado e o diretório foi criado durante a inicialização. Mas, por algum motivo, ele não é criado ao usarservice ssh start
. Existem algumas atualizações recentes de algunssystemd
pacotes relacionados, mas não vejo nenhuma evidência de comportamento quanto à criação desse diretório alterado. E quando eu testo, ele é criado durante a inicialização. Portanto, a questão é se você/etc/init/ssh.conf
possui o conteúdo correto./etc/init/ssh.conf
que também/usr/lib/tmpfiles.d/sshd.conf
parece ser usado porsystemd-tmpfiles --create
. Criasystemd-tmpfiles --create
o/var/run/sshd
diretório ausente ?systemd-tmpfiles --create
saída. O sistema "symlinks" está reclamando (/tmp/.X11-unix) nem existe,/tmp/
então eu não tenho idéia de onde ele está tirando isso. Obrigado por toda a sua ajuda, mas acho que vou seguir em frente.Assim, / run (e / var / run com o link simbólico) são recriados a cada reinicialização. Exceto que systemd-tmpfiles não está fazendo isso em alguns arquivos, incluindo (/ var) / run / sshd.
Aparentemente, isso é corrigido por uma atualização do kernel do OpenVZ. Mas para corrigi-lo agora, edite
/usr/lib/tmpfiles.d/sshd.conf
e remova/var
da linhad /var/run/sshd 0755 root root
para ler:d /run/sshd 0755 root root
E é isso..!
E quando o openssh-server for atualizado, esperamos que eles tenham corrigido esse bug (ou é realmente um bug no systemd? Ou openvz ??) - caso contrário, você poderá encontrar o mesmo problema.
fonte
d /run/sshd 0755 root root
, já que as instruções dizem apenas para remover a/var
parte (mesmo que o código que eles dão na resposta tenha ambos/var
e/run
removido).Aparentemente, isso é resolvido ao executar um kernel OpenVZ 2.6.32-042stab134.7 ou mais recente. Acho estranho que não seja possível corrigir os scripts de inicialização do systemd de alguma forma. Provavelmente, um truque feio, como criar automaticamente / executar / sshd / após a inicialização e iniciar o sshd, funcionaria.
A saída do meu
systemd-tmpfiles --create
:O changelog do OpenVZ 2.6.32-042stab134.7 diz o seguinte:
fonte
Por tantos problemas que tive com o systemd ao longo dos anos, devo admitir que esse problema decorre da diretiva de sincronização Ansible .
Por alguma razão, depois de provisionar este host com nossos scripts ansbile, ele deixou o diretório / (assim como o / etc, / opt e outros) de propriedade de um usuário administrador, e não o root. Depois de executar
chown
para corrigir as coisas,/var/run/sshd
agora é criado na inicialização novamente.Eu realmente aprecio toda a entrada, mas não há nenhum erro aqui, pelo menos no sentido de que aplicar propriedade inadequada a diretórios raiz causou um comportamento indefinido do sistema.
fonte