Pourquoi sshd nécessite un chemin absolu?

23

Pourquoi sshdnécessite un chemin absolu lors du redémarrage, par exemple /usr/sbin/sshdplutôt quesshd

Y a-t-il des implications pour la sécurité?

PS le message d'erreur:

# sshd
sshd re-exec requires execution with an absolute path
Marguerite
la source

Réponses:

20

Ceci est spécifique à OpenSSH à partir de la version 3.9.

Pour chaque nouvelle connexion, sshd se réexécutera lui-même, pour garantir que toutes les randomisations au moment de l'exécution sont régénérées pour chaque nouvelle connexion. Pour que sshd se réexécute, il doit connaître le chemin complet vers lui-même.

Voici une citation des notes de publication de la version 3.9:

  • Faites que sshd (8) se réexécute en acceptant une nouvelle connexion. Cette mesure de sécurité garantit que toutes les randomisations au moment de l'exécution sont réappliquées pour chaque connexion plutôt qu'une seule fois, pour la durée de vie du processus maître. Cela inclut les mappages mmap et malloc, l'adressage de bibliothèque partagée, l'ordre de mappage de bibliothèque partagée, les cookies ProPolice et StackGhost sur les systèmes qui prennent en charge de telles choses

Dans tous les cas, il est généralement préférable de redémarrer un service en utilisant soit son script init (par exemple /etc/init.d/sshd restart), soit en utilisant service sshd restart. Si rien d'autre, cela vous aidera à vérifier que le service démarrera correctement après le prochain redémarrage ...

( réponse originale, maintenant hors de propos: ma première supposition serait que ce /usr/sbinn'est pas dans votre $ PATH. )

Jenny D
la source
Bien sûr, c'est dans $ PATH, sinon comment puis-je obtenir ce message d'erreur de sshd ;-P
daisy
6
Vous voulez dire le message d'erreur que vous n'avez pas mentionné dans votre message?
Jenny D
2
Mon mauvais, édité le post
marguerite
6

Il s'agit d'empêcher quelqu'un d'injecter un sshdprogramme quelque part dans l'un des répertoires de votre PATH et de l'exécuter par inadvertance. Ce billet de 2004 décrit déjà le problème.

Timo
la source
Bien que ce message décrive correctement le problème, les conclusions tirées dans le fil sont erronées. Ce n'est pas un bug, c'est une fonctionnalité :-)
Jenny D
@JennyD Pourquoi pensez-vous que c'est un bug? Je n'ai jamais laissé entendre cela.
Timo
Dans le message que vous avez lié à, une réponse était "Bug qui s'est glissé dans la mise à niveau vers le dernier openssh". Aucune des réponses de ce fil de discussion n'a mentionné la raison réelle de la nécessité d'un chemin d'accès complet - certains ont mentionné la même raison que vous, ce qui est très plausible et montre pourquoi c'est une bonne idée d'utiliser le chemin d'accès complet pour tout programme ouvrant des possibilités de connexion. Mais ce n'est pas la raison réelle pour laquelle ce programme particulier a cette exigence.
Jenny D