Esto es específico para OpenSSH desde la versión 3.9 en adelante.
Para cada nueva conexión, sshd se volverá a ejecutar, para garantizar que todas las aleatorizaciones en tiempo de ejecución se vuelvan a generar para cada nueva conexión. Para que sshd se vuelva a ejecutar, necesita conocer la ruta completa a sí mismo.
Aquí hay una cita de las notas de la versión 3.9:
Haga que sshd (8) se vuelva a ejecutar al aceptar una nueva conexión. Esta medida de seguridad garantiza que todas las aleatorizaciones en tiempo de ejecución se vuelvan a aplicar para cada conexión en lugar de una vez, durante la vida útil del proceso maestro. Esto incluye mapeos mmap y malloc, direccionamiento de biblioteca compartida, orden de mapeo de biblioteca compartida, cookies ProPolice y StackGhost en sistemas que admiten tales cosas
En cualquier caso, generalmente es mejor reiniciar un servicio usando su script de inicio (por ejemplo /etc/init.d/sshd restart) o usando service sshd restart. Por lo menos, le ayudará a verificar que el servicio se iniciará correctamente después del próximo reinicio ...
( respuesta original, ahora irrelevante: mi primera suposición sería que /usr/sbinno está en su $ PATH ) .
Por supuesto, está en $ PATH, de lo contrario, ¿cómo puedo obtener ese mensaje de error de sshd ;-P
daisy
66
¿Te refieres al mensaje de error que no mencionaste en tu publicación?
Jenny D
2
My bad, editó la publicación
daisy
6
Esto es para evitar que alguien inyecte un sshdprograma en algún lugar de uno de los directorios en su PATH
e inadvertidamente lo ejecute. Esta publicación de 2004 ya describe el problema.
Si bien esa publicación describe el problema correctamente, las conclusiones extraídas en el hilo son erróneas. No es un error, es una característica :-)
Jenny D
@ JennyD ¿Por qué crees que es un error? Nunca lo implicaba.
Timo
En la publicación a la que se vinculó, una respuesta fue "Error que se introdujo a través de la actualización al último openssh". Ninguna de las respuestas en ese hilo mencionó la razón real para requerir una ruta completa; algunas mencionaron la misma razón que usted, lo cual es muy plausible y muestra por qué es una buena idea usar la ruta completa para cualquier programa que abra posibilidades de inicio de sesión. Pero esa no es la razón real de que este programa en particular tenga ese requisito.
Esto es para evitar que alguien inyecte un
sshd
programa en algún lugar de uno de los directorios en suPATH
e inadvertidamente lo ejecute. Esta publicación de 2004 ya describe el problema.fuente