Почему sshd требует абсолютного пути?

23

Почему sshdпри перезапуске требуется абсолютный путь, например, /usr/sbin/sshdвместоsshd

Есть ли какие-либо последствия для безопасности?

PS сообщение об ошибке:

# sshd
sshd re-exec requires execution with an absolute path
маргаритка
источник

Ответы:

20

Это относится к OpenSSH начиная с версии 3.9.

Для каждого нового соединения sshd будет самопроизвольно выполняться, чтобы гарантировать, что все рандомизации во время выполнения будут перегенерированы для каждого нового соединения. Чтобы sshd мог выполнить себя заново, ему нужно знать полный путь к себе.

Вот цитата из заметок о выпуске для 3.9:

  • Заставьте sshd (8) повторно выполнить себя при принятии нового соединения. Эта мера безопасности обеспечивает повторное применение всех рандомизаций во время выполнения для каждого соединения, а не один раз, для времени жизни главного процесса. Сюда входят сопоставления mmap и malloc, адресация совместно используемой библиотеки, порядок сопоставления совместно используемых библиотек, файлы cookie ProPolice и StackGhost в системах, которые поддерживают такие вещи.

В любом случае, обычно лучше перезапустить сервис, используя либо скрипт инициализации (например /etc/init.d/sshd restart), либо используя service sshd restart. Если ничего другого, это поможет вам убедиться, что служба будет запускаться правильно после следующей перезагрузки ...

( оригинальный ответ, теперь не имеет значения: мое первое предположение будет, что /usr/sbinэто не в вашем $ PATH. )

Дженни Д
источник
Конечно его в $ PATH, иначе как я могу получить , что сообщение об ошибке от SSHD ;-p
ромашка
6
Вы имеете в виду сообщение об ошибке, которое не упомянули в своем посте?
Дженни Д
2
Мой плохой, отредактировал пост
маргаритка
6

Это сделано для того, чтобы кто-то не вводил sshdпрограмму где-то в одном из ваших каталогов, PATH и вы случайно выполняете ее. Этот пост 2004 года уже описывает проблему.

Timo
источник
Хотя этот пост описывает проблему правильно, выводы, сделанные в ветке, ошибочны. Это не ошибка, это особенность :-)
Jenny D
@JennyD Почему вы думаете, что это ошибка? Я никогда не подразумевал этого.
Тимо
В сообщении, на которое вы ссылались, один из ответов был «Ошибка, появившаяся при обновлении до последней версии openssh». Ни один из ответов в этой теме не упомянул фактическую причину, по которой требуется полный путь - некоторые упоминали ту же причину, что и вы, что очень правдоподобно и показывает, почему рекомендуется использовать полный путь для любой программы, открывающей возможности входа в систему. Но это не фактическая причина для этой конкретной программы, имеющей такое требование.
Дженни Д